2011-02-15 72 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); 
} 

運行字符串不建議