js原生方法被覆盖,从新赋值原生的方法
实现原理
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原生方法被覆盖,从新赋值原生的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
经过分析发现,这个是因为页面中html与js编码不一致导致的,一般情况最好统一标准的utf8的 上网找了找,木有找到相关的解决办法,索性自己试了试. 原页面是这样写的: <html> <head> <meta http-equiv="Content-Type" content="text/html charset=UTF-8" /> <script type="text/javascript" src=&
-
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
简单说下原理,把显示的图片的<img>标签 和上传文件的 <input> 标签放在同一个div下,设置<img>的大小和<input>的大小一样,<input> 设置透明度为0,用定位和设置优先级把input浮动在<img>上方,这样点击图片就能选择上传图片,选择完图片后获取图片地址,替换掉原来的默认图片就能实现覆盖原图功能. js代码: <script type="text/javascript" src=
-
JavaScript编写棋盘覆盖代码详解
一.前言 之前做了一个算法作业,叫做棋盘覆盖,本来需要用c语言来编写的,但是因为我的c语言是半桶水(哈哈),所以索性就把网上的c语言写法改成JavaScript写法,并且把它的覆盖效果显示出来 二.关键代码 <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <titl
-
深入了解JavaScript代码覆盖
它为什么是有用的? 作为一名JavaScript开发者,你可能经常发现自己处于代码覆盖可能有用的情景.例如: 对测试套件的质量感兴趣? 重构一个大型的遗留项目? 代码覆盖可以准确显示代码库中已覆盖了哪些部分. 想快速了解是否覆盖了代码库的特定部分? 代码覆盖可以显示有关应用程序的哪些部分已被执行的实时信息,而不是使用console.log进行printf-风格的调试或手动执行代码. 或者你可能正在优化速度,并想知道要关注哪些点? 执行次数可以指出关键函数和循环. JavaScript在V8中的代
-
js原生方法被覆盖,从新赋值原生的方法
实现原理 js的原生方法被覆盖掉以后,如果你还没让原生方法又从新指向一个新的变量名,那就gg了.所以,关键就是怎么再获取到原生的方法.实现的原理呢就是创建一个新的window对象,然后从新的window对象里面获取原生的方法,来重新赋值. 使用iframe实现 首先创建一个iframe对象,使用document.createElement方法创建 var iframe = document.createElement("iframe"); document.body.appendChi
-
JS原生实现轮播图的几种方法
轮播图 主要思想就是: 在大的容器里,装着一个很长的表,表是容器宽度的整数倍. 然后通过更改列表样式里的left属性来实现左右滑动. 本文旨在控制滑动五张图片,但在html中使用了七张图片,第一张和最后一张是有重复的,至于原因会在下面解释. 通过给容器设定overflow:hidden属性来保证只显示容器视口大小的一张图片. <body> <div id="container"> /*容器*/ <div id="wrap" style=
-
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
js的 bug 类型: Uncaught TypeError:Cannot set/read property 'xxx' of null 在进行DOM操作的时候比较容易发生这个错误,比如: 1. document.getElementById('test1').style.display='none' 2. document.getElementById('test1').onclick=function(){/*相关代码*/} 假如DOM中无此 test1对象,将会抛出上面的错误,发生
-
利用原生JS实现懒加载lazyLoad的三种方法总结
目录 前言 Method 1: 高度对比 Method 2: 使用getBoundingClientRect() 的API Method 3: 采用最新的 IntersectionObserver 构造函数 总结 前言 首先我们先搭建好页面如下: <style> * { padding: 0%; margin: 0%; } .contain img { width: 600px; height: 400px; } ul { list-style: none; } li { display: i
-
原生JS获取URL链接参数的几种常见方法
前言 作为一个前端开发,我们很多时候都需要对URL进行操作和处理,最常见的一种就是获取URL链接中携带的参数值了.使用框架开发的小伙伴可能会觉得这很简单,因为框架提供了很多方法让我们方便的获取URL链接携带的参数.但是有些时候我们不能依赖框架,需要我们使用原生JS去获取参数,这也是面试中经常遇到的一道题.今天我们就手撕代码,利用原生JS去获取URL链接参数值. 1. 获取方式总结 利用原生JS获取URL链接参数的方法也有好几种,今天我们依次来讲解常见的几种: 通过正则匹配的方式 利用a标签内置方
-
原生javaScript实现图片延时加载的方法
本文实例讲述了原生javaScript实现图片延时加载的方法.图片延时加载其实是有jquery插件了并且加载方法非常的简单并且合理了,但有朋友觉得加载jquery插件包太大了,于时自己写了一个,给各位分享一下. 首先,图片延时加载可以节省我们带宽,获取到更好的用户体验,尤其对于图片多的站点,这一点显得至关重要,下面就跟大家探讨一下图片延时加载原理和实现代码. 图片延时加载原理 图片延时加载原理是在html里面的图片src填的并不是真正的图片地址,而是以一种自定义属性把图片地址赋给img标签,如:
-
原生javascript制作贪吃蛇小游戏的方法分析
本文实例讲述了原生javascript制作贪吃蛇小游戏的方法.分享给大家供大家参考,具体如下: <!--1. 创建场景 --> <!-- 2.定义初始数据 以及随机食物 --> <!-- 3.控制贪吃蛇方向 --> <!-- 4.判断位置以及和随机食物的位置 增加贪吃蛇长度 --> HTML部分 <!DOCTYPE html> <html lang="en"> <head> <meta char
-
JS实现给json数组动态赋值的方法示例
本文实例讲述了JS实现给json数组动态赋值的方法.分享给大家供大家参考,具体如下: json 数组也是数组: //1. var jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]"; var jsonarray = eval('('+jsonstr+')'); var arr = { "name" : $('#names').val(), "value" : $('#values')
-
Vue.js 动态为img的src赋值方法
需求是这样: ajax获取数据如下 { "code": "200", "data": { "SumAmount": 200, "List": [{ "amount": 100, "sex": "male", "fee": 1, "id": 98, "status": 2, "ti
-
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
1.使用Vue.js实现双向表单数据绑定,例子 <!--html代码--> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>财产查勘处理</title> <link r
随机推荐
- Java并发编程Semaphore计数信号量详解
- vue 实现 tomato timer(蕃茄钟)实例讲解
- Flex 改变树结点图标的2种方法介绍
- VBS 强制关闭Symantec Endpoint Protection的代码
- Vue.js每天必学之数据双向绑定
- java组件commons-fileupload实现文件上传、下载、在线打开
- Android Handler 原理分析及实例代码
- Java语言一元运算符实例解析
- ASP.NET MVC图片上传前预览简单实现
- PHP实现克鲁斯卡尔算法实例解析
- 微信小程序的分类页面制作
- 不同的jQuery API来处理不同的浏览器事件
- javascrpt绑定事件之匿名函数无法解除绑定问题
- 浅谈find命令下的atime,ctime,mtime
- 举例讲解Java设计模式中的对象池模式编程
- Android View添加 Listener 实例代码
- 基于Python socket的端口扫描程序实例代码
- 详解Java常用工具类—泛型
- pandas实现to_sql将DataFrame保存到数据库中
- thinkPHP5框架接口写法简单示例