首頁 >web前端 >js教程 >控制台報錯object is not a function的解決方法_基礎知識

控制台報錯object is not a function的解決方法_基礎知識

WBOY
WBOY原創
2016-05-16 16:38:491801瀏覽

今天回饋過來一個BUG,說一個頁面的功能用不了。開啟控制台發現報錯:object is not a function。

感覺很奇怪,這塊的功能最新沒動過怎麼會突然出問題了呢?上線時主流瀏覽器都測試過了呀。

雖然奇怪,但還的解決問題。看著程式碼發現一個radio物件的name屬性和一個function name重名了。程式碼如下:

<body> 
<input type="radio" name="test" onclick="test();"/> 
<br/> 
<form action=""> 
<input type="radio" name="test" onclick="test();"/> 
</form> 
</body> 
<script type="text/javascript"> 
function test(){ 
alert("11"); 
}
</script>

修改了函數名稱,解決了問題。但沒找到根源,因為這個函數名稱以前就是這樣的,可以正常使用。修改代碼
onclick="alert(test);"

發現彈出“object HTMLInputElement”,瀏覽器解析test變成dom物件了。

在script腳本test函數後alert(test);還是一個function。

查看svn版本發現,是我做另一個功能的時候加了一個form表單把這個radio包起來了。導致瀏覽器解析出錯了。

總結:不一定沒改動的程式碼就沒問題,說不定改動的地方引起了別的問題。有些瀏覽器相容性問題都是程式碼不規範導致的,以後寫程式碼要規範!

哪位大牛如果知道為什麼加了form瀏覽器解析出問題,能告訴我下。感激不盡!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn