繁体   English   中英

Chrome 中的 Tampermonkey - 如何在不影响网站的情况下使用 jquery

[英]Tampermonkey in Chrome - How to use jquery without affecting the website at all

使用Google Chrome Tampermonkey ,我希望能够使用jqueryset/get值,但我需要确保没有任何更改/添加到dom

简而言之,我希望用户userscript对受影响的网站绝对不可见

我添加的 jquery 是否对网站范围不可见?

另一个问题是,如果jquery已经存在怎么办?

我做对了@grants吗?

这是我的尝试

// ==UserScript==
// @name         test
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        *
// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_setClipboard
// @grant unsafeWindow
// @grant window.close
// @grant window.focus
// ==/UserScript==

(function() {
    'use strict';

    //var $ = unsafeWindow.jQuery;
    var $ = window.jQuery;
    $(document).ready(Greasemonkey_main);

    function Greasemonkey_main ()
    {
    //$("#elem").val()    
    }


})();

如果您至少有一个@grant指令而不是none ,那将激活 Tampermonkey 的沙箱。 这个沙箱将导致@require d 库将自己分配给沙箱window ,而不是本机页面window ,并且在用户脚本代码中引用window变量将引用用户脚本的沙箱window而不是页面的原始window .

如果您有@grant none ,这将指示使用沙箱,并且@require将导致将属性分配给原始window (并且在用户脚本中引用window将引用原始window )。

由于您有一个启用沙箱的@grant并且您正在引用window.jQuery ,它将引用沙箱的 jQuery 版本,而不会对页面做任何事情,因此它应该按需要工作,无论 jQuery 是否已经在本页面上与否。 (因为你在沙箱中,所以不应该有任何冲突)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM