如何真正重写window对象的方法

重写window对象的方法不是一件新奇的事,比如我们可能需要改变默认alert的行为,如何安全的重写呢?

小菜看到某知名IT网站是这样的写法:

1 window.alert = function(){};

或者

1 alert = function(){};

实际上,这种写法有些欠妥。这相当于在window对象上添加了一个alert属性,它的优先级比系统内置的alert高,所以可以达到重写的效果,但这很容易突破,执行以下语句,就会还原alert。

1 delete window.alert;

因为通过这种方式重写的alert,只不过是window对象的一个属性而已,可以通过delete操作符删除。

如何才能永久重写,不可逆转呢?

只需定义一个全局变量即可!全局变量虽然也会注册为window对象的一个属性,但它不可删除,它是事实上绝对存在的。代码如下:

1 var alert = function(){};

这样重写的方法,是绝对不会被还原的,安全可靠!

时间: 2024-12-11 00:19:39

如何真正重写window对象的方法的相关文章

在JavaScript中重写jQuery对象的方法

jQuery是一个很好的类库,它给我们解决了很多的客户端编程,任何东西都不是万能的,当它不能满足我们的需求时我们需要对它进行重写,同时也不要影响其原有的功能或者修改其原有的功能:我现在的web应用程序大多数时候的数据交互都是通过Ajax来完成的,这样就可以将一些隐藏字段的数据保存在HTML标签的属性中,使HTML标签的代码量减少,如:ID,Timestamp等等,这些不需要用户输入但又不得不提交的字段,通过表单提交的做法是 <input name="ID" value="

window对象的方法和属性汇总【总结--window对象】

window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval moveBy moveTo resizeBy resizeTo scrollBy scrollTo find back forward home stop print blur focus captureEvent enableExternalCapture disableExternalCapture

window对象的方法和属性汇总

open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval moveBy moveTo resizeBy resizeTo scrollBy scrollTo find back forward home stop print blur focus captureEvent enableExternalCapture disableExternalCapture handleEvent rel

window对象的方法属性

方法 1.window.open(URL, name, 'width=100,height=100,left=0,top=0') 打开一个新窗口,可指定地址(URL),指定新窗口title(name,我试了没反应啊), 此外还可以设置新窗口打开的位置,大小等.left.top.width.height(当未设置宽高时left.top谷歌不起作用,ie8以上设置宽或高即可) 2.window.close() 关闭本窗口 3.window.history.back() 回到上一页 属性 1.wind

BOM的window对象的方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title>window方法</title></head><body><script> //1.alert// alert('hello wo

仿 window对象 confirm方法

效果图: 调用方式: Confirm('确定删除?', function(boo){ if(boo){ //用户点击确定 }else{ //用户点击取消 } }) CSS: .Btn{display: inline-block;margin-bottom: 0;font-weight: normal;text-align: center;vertical-align: top;cursor: pointer;background-image: none;border: 1px solid tra

BOM的window对象的属性及其方法

Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY.FRAMESET或 FRAME元素时,都会自动建立window对象的实例.另外,该对象的实例也可由window.open()方法创建.由于window对象是其它大部 分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用.例如:window.document.write()可以 简写成: document.write(). 在窗口中觖发本窗

JavaScript - window对象方法和事件

window对象方法和事件 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>window对象方法和事件</title> <script type="text/javascript"> /*alert(window.screen); alert(window.history);

HTML DOM Window对象

本篇主要介绍HTML DOM Window对象的属性和方法. 目录 1.介绍:描述HTML DOM Window对象. 2.属性:介绍window对象的属性.如:对Console.Document.History.Location和Navigator对象的引用. 3.方法:介绍window对象的方法.如:获取焦点.改变滚动条.设置定时器等等. 1. 介绍 Window对象表示浏览器打开的窗口.标签或者框架(若当前页面里包含多个iframe,会为每个iframe创建Window对象). Windo