【问题标题】:Get value from javascript dict in odoo template's script tag从 odoo 模板的脚本标签中的 javascript dict 获取值
【发布时间】:2021-12-19 13:38:28
【问题描述】:

我需要获取elt.innerHTML 的值并将其传递给fromPage[j].textContent

GitHub借用的函数。

目前vars['hiddenNumber'] 正在返回undefined

elt.style.visibility = "hidden"; 按预期工作。

我相信这可能与变量范围有关,但似乎找不到创建全局变量的方法。尝试更新window.value,但出现未定义窗口的错误。

使用 odoo 13,wkhtmltopdf 0.12.5。

<script>
    function subst() {
        var vars = {};
        var x = document.location.search.substring(1).split('&amp;');
        for (var i in x) {
            var z = x[i].split('=', 2);
            vars[z[0]] = unescape(z[1]);
        }
        var index = vars['webpage'].split('.', 4)[3]

         var operations = {
                    // other operations
             'hidden_page_number': function (elt) {
                 elt.style.visibility = "hidden";
                 vars['hiddenNumber'] = elt.innerHTML;  // This value
             },
         };

         for (var klass in operations) {
             var y = document.getElementsByClassName(klass);
             for (var j=0; j&lt;y.length; ++j)
             operations[klass](y[j]);
         }

         var fromPage = document.getElementsByClassName('page');
         for(var j = 0; j&lt;fromPage.length; j++)
         fromPage[j].textContent = vars['hiddenNumber'];  // Required here

         var toPage = document.getElementsByClassName('topage');
         for(var j = 0; j&lt;toPage.length; j++)
         toPage[j].textContent = vars.sitepages;
 }
</script>

【问题讨论】:

    标签: javascript html xml odoo


    【解决方案1】:

    只是一个建议:您在闭包之外定义vars,然后在尝试更新vars 的位置定义闭包,但我认为在闭包内部它为vars 创建了新范围,这就是vars 未更新的原因外面

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2017-02-16
    • 2016-05-30
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 2013-04-28
    相关资源
    最近更新 更多