js脚本中一些常用的方法,例如window.onbeforeunload 网页关闭触发一些事件。怎么确保一些三方插件,比如在线客服,三方js覆盖该方法,导致自己的业务丢失呢?
1 回答
沧海一幻觉
TA贡献1824条经验 获得超5个赞
在业务代码设定完onbeforeunload之后, 通过Object.defineProperty设定onbeforeunload属性,
var _onbeforeunload = window.onbeforeunload;
Object.defineProperty(window, 'onbeforeunload', {
get: function() {
return _onbeforeunload;
},
set: function(newOnBeforeUnload) {
_onbeforeunload = function() {
if (typeof _onbeforeunload === 'function') {
_onbeforeunload.apply(this, arguments);
}
return newOnBeforeUnload.apply(this, arguments);
};
},
enumerable : true,
configurable : true
});
添加回答
举报
0/150
提交
取消