从 odoo 模板的脚本标签中的 javascript 字典获取值

Get value from javascript dict in odoo template's script tag

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

GitHub.

借用的函数

目前 vars['hiddenNumber'] 返回 undefined

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

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

使用 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>

只是一个建议:您在闭包外定义 vars,然后在尝试更新 vars 的地方定义闭包,但我想在闭包内它会为 vars 创建新的范围,并且这就是为什么 vars 没有在外面更新