将字符串转换为javascript中的onclick处理程序
问题描述:
我有一个变量ElementAction
,它是一个字符串javascript:deleteRow();
。如何将ElementAction
的文字内容分配给另一个HTML元素的onclick
处理程序。 HTMLElement.onclick = ElementAction
不起作用。将字符串转换为javascript中的onclick处理程序
感谢您的任何帮助。
答
先去掉那个“javascript:”前缀;没用的。您可以从字符串创建函数实例与:
var handler = new Function("event", ElementAction.replace(/^javascript:/, ''));
然后你可以通过设置“点击”属性直接或通过使用API的一个作为JCOC611的答案附加处理程序。
+0
顺便说一下,我刚刚意识到“javascript:”前缀的确行得通,因为它最终在函数体的第一条语句中充当**标签** :-) – Pointy 2011-02-15 00:36:40
答
您可以:
element.onclick = deleteRow;
甚至更多兼容:
if(element.attachEvent){
element.attachEvent("onclick", deleteRow);
}else{
element.addEventListener("click", deleteRow, false);
}
运行字符串不建议。
你可以使用`eval`,然而**我绝对不建议**运行一个字符串。 – JCOC611 2011-02-15 00:06:27