我目前拥有一个对象,我想将其作为参数传递给模板文字中的另一个函数:
var template = `<button onclick="onclick(${object})"></button>`;
然而,这会使参数变成字符串值:
[object Object]
,并且不会传递参数。有没有办法将此参数传递到函数中?非常感谢您的帮助。
我目前拥有一个对象,我想将其作为参数传递给模板文字中的另一个函数:
var template = `<button onclick="onclick(${object})"></button>`;
[object Object]
,并且不会传递参数。有没有办法将此参数传递到函数中?JSON.stringify
来实现此功能:var template = `<button onclick="handleClick(${JSON.stringify(obj).split('"').join(""")})"></button>`;
你需要转义双引号(这段代码已经做了),如果你在onclick事件中使用单引号,也需要进行转义(这段代码没有做)。
onclick="onclick" 实际上调用的是 window.onclick - 也就是说它会捕获任何地方的点击事件。你应该使用一个不同的名称(比如 handleClick)。
我建议尽量避免使用内联事件监听器,因为这可能会导致类似这样的问题,并且如果您需要采用内容安全策略,它们可能会导致问题。
JSON.parse(string)
。 - ecc521{example: "apostrophe: ' "}
。你实际上需要做的是,在序列化对象后对字符串进行 HTML 实体转义。 - Bergi
onclick
事件处理程序属性,正确安装事件监听器函数! - Bergi