我在IE9中收到以下錯誤:對象不支持此操作IE9與CustomEvent初始化
「對象不支持此操作」。
有關於這個問題的不同,但我是專門爲下面的代碼:
var myEvent = new CustomEvent("additem");
從我的理解,在CustomEvent的IE9支持的DOM操作命令。這在Chrome中運行良好,沒有任何異常。
任何人都有這個問題,並知道如何解決它?謝謝。
我在IE9中收到以下錯誤:對象不支持此操作IE9與CustomEvent初始化
「對象不支持此操作」。
有關於這個問題的不同,但我是專門爲下面的代碼:
var myEvent = new CustomEvent("additem");
從我的理解,在CustomEvent的IE9支持的DOM操作命令。這在Chrome中運行良好,沒有任何異常。
任何人都有這個問題,並知道如何解決它?謝謝。
只有在普通瀏覽器中,IE不支持Afaik自定義事件。我建議使用,提供了一個獨立於瀏覽器的實現像jQuery的觸發JavaScript庫:http://api.jquery.com/trigger/
您可以使用JavaScript函數來檢測,如果瀏覽器IE11或降低再申請下一填充工具:
(function() {
function CustomEvent (event, params) {
params = params || { bubbles: false, cancelable: false, detail: undefined };
var evt = document.createEvent('CustomEvent');
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
return evt;
};
CustomEvent.prototype = window.Event.prototype;
window.CustomEvent = CustomEvent;
})();
的上面的polyfill取自MDN: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
此polyfill似乎無法檢測何時從本機實現中降級 – goofballLogic
新的CustomEvent在IE 10/11中也不起作用。 –
謝謝阿林!我編輯了我的答案並更正了它。 –
試試這個不能代替原生(和功能性)CustomEvent方法的polyfill。 MDN CustomEvent():
(function() {
try {
new CustomEvent('test');
return;
} catch(e) {
// ignore this error and continue below
}
function CustomEvent (event, params) {
params = params || { bubbles: false, cancelable: false, detail: undefined };
var evt = document.createEvent('CustomEvent');
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
return evt;
};
CustomEvent.prototype = window.Event.prototype;
window.CustomEvent = CustomEvent;
})();
這在IE11中不適用於我。調用新的CustomEvent('test')實際上稱爲此處定義的方法,導致填充不會被添加。 – anztenney
啊有趣..也許試着移動'catch'塊內的其餘部分? –
下填充工具不會從replacce本地自定義事件(),
的部分源
(function() {
if (typeof CustomEvent === 'function') { return; }
function customEvent(event, params) {
params = params || {bubbles: false, cancelable: false, detail: undefined};
var evt = document.createEvent('CustomEvent');
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
return evt;
}
customEvent.prototype = window.Event.prototype;
window.CustomEvent = customEvent;
})();
怎麼樣:http://www.kaizou.org/2010/03/generating -custom-javascript-events/ –
看起來像IE9現在具有customEvent的構造函數http://msdn.microsoft.com/en-us/library/ie/ff975304%28v=vs.85%29.aspx請參閱使用createEvent的示例函數但沒有構造函數。如果您需要多瀏覽器支持,我同意Flunk更好地使用圖書館。 – HMR
@HMR是對的,支持**自定義事件!**。你必須使用'document.createEvent()'和'CustomEvent :: initCustomEvent()'來獲得** IE 9的兼容性**。看到我的答案在這裏:http://stackoverflow.com/a/19345563/603003 – ComFreek