关注它,不迷路。
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
浏览器的一些常用全局对象,我们是无法使用copy命令将其copy的,甚至就算用 JSON.stringify 也无法字符串化,因此我想了个办法,可以复制部分环境,仅供大家学习参考。
一.脚本代码
直接上代码:
let getObjectValue = function (obj) {
let newObj = new Object();
for (let key in obj) {
if (obj[key] == null) {
newObj[key] = null;
continue;
}
if (typeof obj[key] == "string" || typeof obj[key] == "number" || typeof obj[key] == "boolean") {
newObj[key] = obj[key];
} else if (typeof obj[key] == "function") {
newObj[key] = "function";
} else if (Array.isArray(obj[key])) {
newObj[key] = obj[key];
}
}
return newObj;
}
let newObj = getObjectValue(window);
copy(newObj)
二.食用指南
打开一个新的标签页,然后在控制台输入上面的代码回车即可,部分环境就copy到剪切板了。然后在文本编辑器里面粘贴:
这个时候,你只需要将 window 定义放在前面即可。
因为function无法定义,因此我统一改写成了"function",所以你只需要写个置空函数再替换即可:
替换前的效果:
替换后的效果:
这些置空的函数,如果网站检测了具体的函数定义及原型链,需要自己去改写,本文只做抛砖引玉的作用。具体的环境代码可以参考MDN上的功能再写,这需要看自己对js这门语言的理解程度。
三.其他对象的复制
如果你还想复制其他对象的环境,可以将这段代码里的window进行替换。
let newObj = getObjectValue(window);
常见的对象有 document,navigator,location,history,screen等。
这个简单的代码感觉没什么卵用,大佬们请勿喷。后续如果优化了,我会放在星球里。
第二步的操作可以在某个断点处进行copy,大家自己随意。
如果你有更好的办法copy当前的环境,可以加我微信私聊,在此感谢。