为了账号安全,请及时绑定邮箱和手机立即绑定

window.alert绑定console之后是不是无法解绑?

window.alert绑定console之后是不是无法解绑?

aluckdog 2018-12-27 14:18:23
发现问题的经过:在浏览这篇文章的时候,因为要边测试边记录嘛。自然就在控制台测试代码。然后代码中的alert(...)都被转换成了console.log(...)看了他的代码。是这样把alert()转化的:window.alert = function(n) {    try {        console.log("alert: " + n)    } catch (t) {}    return !0}因为之前没见过,所以又学习到了。但是,我之前看过萧井陌萧大的代码,他把console.log()改写成了var log = console.log.bind(console),(算是一种封装?)就可以用log()直接调用,比较方便。问题如下:所以按照这个思路,我想是不是可以把window.alert也这样处理一下就可以达到文章中的效果(就是没有检错)?我的源码如下:window.alert = console.log.bind(console)检验之后确实能实现不弹窗,然后在控制台输出的效果。但是把页面的这个alert效果改了,总得要有办法还原。查了一下解绑用unbind()。但是学艺不精。直接把上面那行代码改成:window.alert = console.log.unbind(console)会报console.log.unbind is not a function 的错。但是不知道怎么处理才能让他解绑,还是说我这样的方法无法把alert的效果还原了?这里先谢谢各位辣!
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

先备份 alert 的实现:



window.$alert = alert;

window.alert = console.log.bind(console);


alert('fff'); //控制台输出 fff

$alert('fff'); //弹窗显示 fff

关于 unbind,我搜索了一下都是 jQuery 的解绑事件所用,我也没听说过 js 有 unbind 这种写法,所以这部分就帮不到你了,抱歉。


查看完整回答
反对 回复 2019-01-26
  • 1 回答
  • 0 关注
  • 478 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信