gpt4 book ai didi

javascript - 如何在javascript中使用tal变量?

转载 作者:太空宇宙 更新时间:2023-11-04 01:16:51 25 4
gpt4 key购买 nike

我想将作为对 zope 模板的响应返回的变量传递到 Pyramid 中的 javascript 变量中。

这是 View 代码:

def return_table(request):
selected = request.params.getall("selectedcategories")

return {'selected': selected}

这是模板:

<script tal define:"selected ${selected}">
var selected = ${selected}
$.ajax({
type:"POST",
url: '/return_table.json?selectedcategories=' + selected,
async: false,
success: function (response) {
console.log(response)
}
})
</script>

但这行不通。我想将 selected 的值传递给 javascript 变量。

最佳答案

最安全的方法是将变量作为 HTML5 传递 data属性,或在 <meta>里面<head> .

<script id="my-script" data-selected="${selected}">
$(document).ready(function() {

var selected = $("#my-script").attr("data-selected");

$.ajax({
type:"POST",
url: '/return_table.json?selectedcategories=' + selected,
async: false,
success: function (response) {
console.log(response)
}
})
});
</script>

有关数据属性的更多信息:http://caniuse.com/#feat=dataset

您还可以生成 <script>像这样将变量公开为 JavaScript 全局变量的代码片段,然后直接在 JavaScript 代码中读取全局变量:

<script>
window.myVar = "${selected}";
</script>

<script>
... code goes here ...
</script>

...但我不推荐,因为包含用户输入的变量会使您的网站受到攻击,并且很难在 HTML 中转义 JavaScript 变量。不过这很方便,如果你需要传递多个变量——你可以使用 json.dumps()针对 Python 字典生成包含所有变量的 JavaScript 对象。

关于javascript - 如何在javascript中使用tal变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23989109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com