2011-02-15 28 views
1

我有一个变量ElementAction,它是一个字符串javascript:deleteRow();。如何将ElementAction的文字内容分配给另一个HTML元素的onclick处理程序。 HTMLElement.onclick = ElementAction不起作用。将字符串转换为javascript中的onclick处理程序

感谢您的任何帮助。

+1

你可以使用`eval`,然而**我绝对不建议**运行一个字符串。 – JCOC611 2011-02-15 00:06:27

回答

3

先去掉那个“javascript:”前缀;没用的。您可以从字符串创建函数实例与:

var handler = new Function("event", ElementAction.replace(/^javascript:/, '')); 

然后你可以通过设置“点击”属性直接或通过使用API​​的一个作为JCOC611的答案附加处理程序。

+0

顺便说一下,我刚刚意识到“javascript:”前缀的确行得通,因为它最终在函数体的第一条语句中充当**标签** :-) – Pointy 2011-02-15 00:36:40

1

您可以:

element.onclick = deleteRow; 

甚至更​​多兼容:

if(element.attachEvent){ 
    element.attachEvent("onclick", deleteRow); 
}else{ 
    element.addEventListener("click", deleteRow, false); 
} 

运行字符串不建议