You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

受PhantomJS版本限制,如何用旧方法替代CustomEvent并保留detail对象?

旧版PhantomJS替代CustomEvent的兼容实现

完全可行。在CustomEvent API普及前,可通过document.createEvent()和initEvent()组合创建自定义事件,同时手动为事件对象添加detail属性来保留所需数据,效果和原代码一致。

替代代码示例

// 创建基础事件对象
var event = document.createEvent('Event');
// 初始化事件:指定事件名称、是否冒泡、是否可取消(与原CustomEvent默认行为匹配)
event.initEvent('Interval', false, false);
// 挂载detail属性,保留原数据结构
event.detail = {
  type: 'foo',
  IntervalId: 1234
};
// 触发事件
dispatchEvent(event);

说明

  • 事件接收方依然可以通过event.detail获取你设置的自定义数据,和使用CustomEvent的方式完全相同。
  • initEvent的后两个参数分别对应CustomEvent配置项里的bubbles和cancelable,原代码未显式设置,默认值为false,所以这里保持一致。如果需要事件冒泡或可取消,将对应参数改为true即可。

内容的提问来源于stack exchange,提问作者Derek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:06:17