js原生方法被覆盖,从新赋值原生的方法


Posted in Javascript onJanuary 02, 2018

实现原理

js的原生方法被覆盖掉以后,如果你还没让原生方法又从新指向一个新的变量名,那就gg了。所以,关键就是怎么再获取到原生的方法。实现的原理呢就是创建一个新的window对象,然后从新的window对象里面获取原生的方法,来重新赋值。

使用iframe实现

首先创建一个iframe对象,使用document.createElement方法创建

var iframe = document.createElement("iframe");
document.body.appendChild(iframe)

然后,获取到iframe里面的window对象

var iframeWin = iframe.contentWindow;

最后赋值一下,即可

window.console = iframeWin.console;

使用window.open方法实现

window.open方法调用会打开一个新的窗口,返回一个新的window对象,所以我们获取window对象可以这样获取

var win = window.open(); //获取对象
win.close(); //将打开的窗口关闭
window.console = win.console;

以上这篇js原生方法被覆盖,从新赋值原生的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery库与其他JS库冲突的解决办法
Feb 07 Javascript
JS去除数组重复值的五种不同方法
Sep 06 Javascript
分享一则javascript 调试技巧
Jan 02 Javascript
javascript实现鼠标拖动改变层大小的方法
Apr 30 Javascript
Bootstrap 布局组件(全)
Jul 18 Javascript
利用ES6语法重构React组件详解
Mar 02 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
vue 实现v-for循环回来的数据动态绑定id
Nov 07 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
Mar 07 Javascript
JS可断点续传文件上传实现代码解析
Jul 30 Javascript
vue3使用vue-count-to组件的实现
Dec 25 Vue.js
JavaScript实现登录窗体
Jun 22 Javascript
JS实现验证码倒计时的注册页面
Jan 02 #Javascript
使用socket.io实现简单聊天室案例
Jan 02 #Javascript
使用socket.io制做简易WEB聊天室
Jan 02 #Javascript
AngularJS实现的简单拖拽功能示例
Jan 02 #Javascript
AngularJS实现的锚点楼层跳转功能示例
Jan 02 #Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 #jQuery
Node实战之不同环境下配置文件使用教程
Jan 02 #Javascript
You might like
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
php求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
JavaScript 继承详解(二)
2009/07/13 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
Python中的descriptor描述器简明使用指南
2016/06/02 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Django 连接sql server数据库的方法
2018/06/30 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
淘宝客服专员岗位职责
2014/04/11 职场文书
交通事故调解协议书
2014/04/16 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
办公室岗位职责
2015/02/04 职场文书
开业庆典致辞
2015/08/01 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技