从 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('&');
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<y.length; ++j)
operations[klass](y[j]);
}
var fromPage = document.getElementsByClassName('page');
for(var j = 0; j<fromPage.length; j++)
fromPage[j].textContent = vars['hiddenNumber']; // Required here
var toPage = document.getElementsByClassName('topage');
for(var j = 0; j<toPage.length; j++)
toPage[j].textContent = vars.sitepages;
}
</script>
只是一个建议:您在闭包外定义 vars
,然后在尝试更新 vars
的地方定义闭包,但我想在闭包内它会为 vars
创建新的范围,并且这就是为什么 vars
没有在外面更新
我需要获取 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('&');
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<y.length; ++j)
operations[klass](y[j]);
}
var fromPage = document.getElementsByClassName('page');
for(var j = 0; j<fromPage.length; j++)
fromPage[j].textContent = vars['hiddenNumber']; // Required here
var toPage = document.getElementsByClassName('topage');
for(var j = 0; j<toPage.length; j++)
toPage[j].textContent = vars.sitepages;
}
</script>
只是一个建议:您在闭包外定义 vars
,然后在尝试更新 vars
的地方定义闭包,但我想在闭包内它会为 vars
创建新的范围,并且这就是为什么 vars
没有在外面更新