gpt4 book ai didi

javascript - 跨浏览器兼容的 CustomEvent

转载 作者:数据小太阳 更新时间:2023-10-29 04:34:35 26 4
gpt4 key购买 nike

我需要创建一个自定义事件,它将一些数据传递给事件监听器。我已经创建了一个像下面这样的

自定义事件

var event = new CustomEvent('store', { 'detail': obj });
document.getElementById("Widget").dispatchEvent(event);

监听器

document.getElementById("Widget").addEventListener('store', function (e) {
console.log(e.detail);
document.getElementById("result").innerHTML = e.detail.name+"<br>"+e.detail.address;
}, false);

它在 Chrome 和 Firefox 等浏览器中工作正常,但在 IE11 中不工作。我在 IE 中遇到错误:

Object doesn't support this action

CustomEvent is not working in IE.

我怎样才能让这个跨浏览器兼容?我不想使用 jQuery trigger() 因为 Listener 可能不在具有 jQuery 的页面中

最佳答案

CoustomEvent 构造函数在 IE11 中不受支持。您可以使用以下 pollyfill

(function () {

if ( typeof window.CustomEvent === "function" ) return false;

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;
})();

复制自MDN

关于javascript - 跨浏览器兼容的 CustomEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37565722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com