我試圖調用.call
IE7中的document.attachEvent
功能原型方法。但它顯示爲未定義。 我也查了typeof document.attachEvent
,應該顯示爲function
,但它是object
。 有人可以解釋它爲什麼?IE7:調用未定義document.attachEvent函數
document.attachEvent.call(this, 'onclick', function() {});
收到此錯誤
Error: Object doesn't support this property or method
爲什麼在調用'attachEvent'時需要設置一個特定的'this'?感覺像X/Y問題。我已經回答Y(「attachEvent」怎麼回事?),但我懷疑你真的需要X的答案,這讓你想要做這件事... –
嗨,@TJCrowder,我加了太多所以不要讓複製代碼重複兩次,一次使用'document.addEventListener',另一次使用'document.attachEvent'。因此,只需爲這些函數分配一個局部變量,然後使用'.call'添加事件。無論如何,我會找到另一種方法 –
我會使用一個包裝器方法來標準化東西,像[這個版本的'hookEvent'](http://stackoverflow.com/questions/23799296/js-li-tag-onclick-not (在ie8/23799448#23799448上),它處理與'attachEvent'有關的各種問題(比如''on''部分,事實上過時的瀏覽器上的事件對象沒有'preventDefault'或' stopPropagation' [雖然他們有這個功能,只是不是標準的API],等等。) –