如何在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副本中加载,加快了运行的速度,并且消除了对外部服务器的依赖问题

发表评论