李恒道 发表于 2021-2-5 01:28:29

如何在Chrome中模仿Greasemonkey/Firefox的unsafewindow功能

# 早期方法

```
var p = unsafeWindow;

if(window.navigator.vendor.match(/Google/)) {
    var div = document.createElement("div");
    div.setAttribute("onclick", "return window;");
    p = div.onclick();
};
```

创建div元素后设置属性,点击返回window引用,然后设置div的点击

随着chrome的更新该方法已经失效

目前chrome已经提供了unsafewindow,但是使用相对来说较为有限

# 优点

非tampermonkey脚本访问目标对象的唯一方法

多浏览器兼容

更容易调试脚本

# 缺点

注入的脚本部分不再具有gm函数特权

可能与原页面js冲突

该页面可能查看、使用、更改、甚至阻止脚本

需要启用js

使用外部调用库可能导致冲突或者时间问题,而且没有require更简单

require从本地的js副本中加载,加快了运行的速度,并且消除了对外部服务器的依赖问题

懒男孩 发表于 2021-2-5 14:21:59

本帖最后由 网络小白 于 2021-2-5 15:59 编辑

哥哥牛逼

挖掘机小王子 发表于 2022-6-2 08:45:56

哥哥能详细解释一下 unsafeWindow 的使用嘛?

李恒道 发表于 2022-6-2 09:28:20

挖掘机小王子 发表于 2022-6-2 08:45
哥哥能详细解释一下 unsafeWindow 的使用嘛?

[油猴脚本开发指南]沙盒机制的前世今生(课外篇,可不看)
https://bbs.tampermonkey.net.cn/thread-182-1-1.html
这个讲过了哦

挖掘机小王子 发表于 2022-6-2 10:18:35

李恒道 发表于 2022-6-2 09:28
[油猴脚本开发指南]沙盒机制的前世今生(课外篇,可不看)
https://bbs.tampermonkey.net.cn/thread-182- ...

好的 我仔细研究一下
页: [1]
查看完整版本: 如何在Chrome中模仿Greasemonkey/Firefox的unsafewindow功能