今天反饋過來一個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浏覽器解析出問題,能告訴我下。感激不盡!