2016-12-02 401 views
0

我收到來自IE8用戶的投訴(我知道)他們無法打開手風琴選項卡。IE8對象不支持屬性或方法'addEventListener'

它們都帶有以下錯誤:

SCRIPT438:對象不支持屬性或方法 '的addEventListener'

 document.addEventListener("DOMContentLoaded", completed, false); 
     window.addEventListener("load", completed, false); 
     } 
     } 
     return readyList.promise(obj); 
    }; 
jQuery.ready.promise(); 

我目前使用jQuery 2.1.3

這以下腳本中還會出現錯誤:

<script type='text/javascript'> 
$(document).ready(function() { 
document.getElementById('txt1').addEventListener('change', function() { 
var style = this.value == 'GP Practice' ? 'block' : 'none'; 
document.getElementById('txtpcode').style.display = style; 
}); 
}); 
</script> 

那裏得到這個在IE8下工作,因爲我知道addEventListener不支持。

+1

微軟不再爲IE8提供安全修補程序。鼓勵人們升級到現代瀏覽器,而不是鼓勵您的網站支持IE8。 – Quentin

+1

IE8持有瀏覽器市場份額的0.78%Worldwild(IE9 - 0.51%)(IE10 0.47%)**任何小於1%的值不值得花在** – Endless

+0

上我完全同意你們兩人的觀點。 – itguyme

回答

1

在IE8下,您需要使用attachEvent。使用純javascript,您需要檢測 用戶 支持和使用attachEventaddEventListener的瀏覽器。

但我建議您使用JQueryon()函數。它包含邏輯,並將在每個瀏覽器中工作。

0

語法

附= target.attachEvent(eventNameWithOn,回調)

目標

的DOM元素監聽事件上

eventNameWithOn

要偵聽的事件的名稱,前綴爲「on」,就好像它是一個事件處理程序屬性。例如,您可以使用「onclick」來監聽點擊事件。當觸發此目標上的事件來調用

回調

回調函數。該函數將被調用,不帶任何參數,並將此引用設置爲窗口對象。連接 指示事件處理程序是否成功連接的布爾值。

+0

* attachEvent *不會在OP的代碼推斷的偵聽器中設置* this *。有很多關於如何用* attachEvent *模擬* addEventListener *的例子。 – RobG

相關問題