6

这是来自用户脚本的代码示例:

var ExampleObj = {
  somevar1:'value1',
  somevar2:'value2',
  somevar3:'value3',
  somefunction1:function(){
    //do sth
  },
  somefunction2:function(){
    //do sth else
  }
}

当我尝试从脚本调用我的函数时:一切正常,但我无法从浏览器控制台访问:

(ReferenceError:ExampleObj 未定义)


我的 Greasemonkey/Tampermonkey 设置(元数据):

// ==UserScript==
// @name     [this is my secret]
// @version  1
// @run-at document-end
// @include [this is my secret]
// @grant    none
// ==/UserScript==

脚本有效;我只需要从浏览器控制台访问这些功能。

4

1 回答 1

5

@grant none模式下,脚本仍然在受保护的范围内运行。通过更改将您的对象放在全局范围内:

var ExampleObj = {

至:

window.ExampleObj = {

然后您将能够看到并使用该对象。(注意,目标网页也可以看到和使用。)

请参阅“从 Greasemonkey 访问变量到页面,反之亦然”以获取更多信息以及@grant非无的情况。

于 2018-04-03T17:29:41.550 回答