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

问题描述 投票:0回答:1

使用Tampermonkey中的Google Chrome,我希望能够使用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()    
    }


})();
javascript jquery tampermonkey userscripts
1个回答
1
投票

如果您具有@grant以外的至少一个none指令,则将激活Tampermonkey的沙箱。此沙箱将导致@require d个库将自己分配给sandboxwindow,而不是在native pagewindow上,并引用内部的window变量用户脚本代码将引用用户脚本的沙盒window,而不是页面的原始window

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

由于您具有启用沙箱的@grant,并且您引用的是window.jQuery,因此它将引用沙箱的jQuery版本,而无需对该页面进行任何操作,因此不管是否需要,它都应按需工作jQuery是否已经在native页面上。 (因为您位于沙箱中,所以不应有任何冲突)

© www.soinside.com 2019 - 2024. All rights reserved.