Доступ к переменным Greasemonkey/Tampermonkey из консоли браузера?

Это пример кода из пользовательского скрипта:

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==

Скрипт работает; Мне просто нужен доступ к этим функциям из консоли браузера.

1 ответ

В @grant none В этом режиме сценарии по-прежнему работают в защищенной области видимости. Поместите ваш объект в глобальную область, изменив:

var ExampleObj = {

Для того, чтобы:

window.ExampleObj = {

Тогда вы сможете увидеть и использовать этот объект. (Обратите внимание, что целевая веб-страница также может видеть и использовать ее.)

См. " Доступ к переменным из Greasemonkey для Page и наоборот" для получения дополнительной информации и сценариев, когда @grant это не никто.

Другие вопросы по тегам