繁体   English   中英

在javascript中的模板文字中将对象作为参数传递

[英]Passing object as a parameter in a template literal in javascript

我目前有一个对象,希望将其作为参数传递给模板文字内部的另一个函数:

    var template = `<button onclick="onclick(${object})"></button>`;

但是,这会使参数成为字符串值: [object Object]并且不传递参数。 有什么办法可以将此参数传递给函数吗?

提前非常感谢您。

您将需要将您的对象表示为字符串。 您可以使用JSON.stringify进行此操作:

var template = `<button onclick="handleClick(${JSON.stringify(obj).split('"').join("&quot;")})"></button>`;

您需要转义双引号(此代码可以做到)和单引号(如果用于onclick事件)(此代码不需要)。

onclick =“ onclick”实际上调用window.onclick-意味着它可以在任何地方获得点击。 您应该使用其他名称(例如handleClick)。

我建议不要因为这种原因而使用内联事件监听器,因为如果您需要采用内容安全策略,它们可能会引起问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM