JavaScript-js的alert被重写后如何还能正常弹出alert

前端开发 前端开发 主题:1148 回复:2395

JavaScript-js的alert被重写后如何还能正常弹出alert

想挽留 发布于 2017-01-29 字数 87 浏览 1289 回复 5

window.alert = function(){}; alert被重写了,如何使后面使用的alert(1)能正确弹出。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(5

虐人心 2017-09-14 5 楼

把你重写的内容删除掉就可以了

window.alert = function(){};
delete(window.alert);
alert(1);

夜无邪 2017-08-13 4 楼

var alert = window.alert;
window.alert = function(){};
//会调用最近最近作用域的alert方法
alert(1);

貌似就可以了

泛泛之交 2017-08-06 3 楼

alert=[];
alert=Window.prototype.alert;
alert(1);
楼上的delete方法 改成
delete alert 试试应该可以

虐人心 2017-07-06 2 楼

我给出一个用 iframe 来恢复方法:

window.alert = function(){};    

var f = document.createElement("iframe"); f.style.cssText = "border:0;width:0;height:0;display:none"; document.body.appendChild(f); var d = f.contentWindow.document; d.write("<script type="text/javascript">window.parent.alert = alert;</script>"); d.close();

alert(1);

可以把中间操作 iframe 的那一段写成一个函数,以后直接传参数进去就能恢复想要恢复的方法

瑾兮 2017-07-05 1 楼

我知道的;
1:就是楼上大家说的那个 delete window.alert
2:Window.prototype.alert.call(window,2) //不兼容ie9以下