2014-07-09 42 views
0

後,按鈕被從html頁面中刪除任何人都可以解釋爲什麼這段代碼將在FF和Chrome中點擊後刪除buton嗎? IE會顯示警報。執行函數名稱爲remove()

<html> 
<head> 
<script> 
function remove() 
{ 
alert('test'); 
} 

</script> 
</head> 
<body> 
<input type="button" onclick="remove();" value="Remove"/> 
</body> 
</html> 
+3

請勿在JavaScript方法或事件之後命名函數 – j08691

+0

[請勿使用內聯事件處理程序](http://stackoverflow.com/a/21975639/218196)或者至少知道你在做什麼。[DOM節點有一個'remove'方法](https://developer.mozilla.org/en-US/docs/Web/API/ChildNode.remove)和這是什麼被調用,而不是你的功能 –

+1

好發現@ j08691。 –

回答

1

因爲javascript有一個remove方法。命名你的功能abcd,它很好:

<html> 
<head> 
<script> 
function abcd() 
{ 
alert('test'); 
} 

</script> 
</head> 
<body> 
<input type="button" onclick="abcd();" value="Remove"/> 
</body> 
</html> 
+0

「remove」在這裏沒有列爲事件:https://developer.mozilla.org/en-US/docs/Web/Events。您有沒有任何參考? –

+0

我也在看,我只看到了這個HTTPS://developer.mozilla。 org/en-US/docs/Web/API/ChildNode.remove – mplungjan

+0

抱歉,我的錯,我會編輯 –

0

通常被認爲是不好的做法,因爲你是要求瀏覽器從HTML字符串解析JavaScript事件,一個更好的方法是如下:

<html> 
<head> 
<script> 
    window.addEventListener("load",function(){ 
    window.myButton = document.getElementById("myButton"); 
    window.myButton.addEventListener("click",myButtonFunction); 
    }); 

    function myButtonFunction() 
    { 
    alert('test');  
    } 

</script> 
</head> 
<body> 
<input id="myButton" type="button" value="Remove"/> 
</body> 
</html> 

還你不需要將其聲明爲窗口變量(全局),除非您想在函數中訪問它。 (但是也可以通過document.getElementById(「myButton」)再次訪問它)