使用CustomEvent polyfill来触发自定义事件

下面是一个完整的示例,展示了如何在ES5环境中使用CustomEvent polyfill来触发自定义事件: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Custom Event Example in ES5</title> </head> <body> <button id="myButton">Click me!</button> <script> if (!window.CustomEvent) { (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; })(); } var button = document.getElementById('myButton'); // 创建并分发事件 button.addEventListener('click', function() { var myEvent = new CustomEvent('myCustomEvent', { detail: { message: 'Hello from the custom event!' }, bubbles: true, cancelable: true }); button.dispatchEvent(myEvent); }); // 注册事件监听器 button.addEventListener('myCustomEvent', function(event) { console.log('Custom event received'); console.log('Detail data:', event.detail); }); </script> </body> </html> 在这个示例中,当用户点击按钮时,会触发myCustomEvent事件,控制台将输出事件的详细信息。这种方法确保了在ES5环境下的广泛兼容性。

2025年7月21日 · 1 分钟 · 107 字