从 odoo 模板的脚本标签中的 javascript dict 获取值
Posted
技术标签:
【中文标题】从 odoo 模板的脚本标签中的 javascript dict 获取值【英文标题】:Get value from javascript dict in odoo template's script tag 【发布时间】: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('&');
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>
【问题讨论】:
【参考方案1】:只是一个建议:您在闭包之外定义vars
,然后在尝试更新vars
的位置定义闭包,但我认为在闭包内部它为vars
创建了新范围,这就是vars
未更新的原因外面
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于从 odoo 模板的脚本标签中的 javascript dict 获取值的主要内容,如果未能解决你的问题,请参考以下文章