js 三方脚本覆盖方法怎么解决?

js脚本中一些常用的方法,例如window.onbeforeunload 网页关闭触发一些事件。怎么确保一些三方插件,比如在线客服,三方js覆盖该方法,导致自己的业务丢失呢?

凤凰求蛊
浏览 350回答 1
1回答

沧海一幻觉

在业务代码设定完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});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript