Менеджер безопасности наложил вето на действие в скрипте Greasemonkey! - PullRequest
1 голос
/ 06 октября 2010

Я пытаюсь предотвратить выполнение сценария Greasemonkey в рамках IFRAME. Я делаю это с помощью if (window.top != window.self) return;. Как только я вставляю эту строку сразу после заголовка метаданных, консоль ошибок выдает «вето Менеджер безопасности», указывающее именно эту строку кода. Дополнительной информации нет.

Я использую Firefox 3.6.10 и последнее расширение Greasemonkey. О, я новичок в пользовательских сценариях, но даже после некоторого времени в поисках ответа я вообще ничего не нашел.

1 Ответ

2 голосов
/ 06 октября 2010

Greasemonkey имеет собственный API, который обеспечивает постоянное хранение и межсайтовые HTTP-запросы. По этой причине сценарии выполняются в песочнице, и этим API нельзя злоупотреблять.

Чтобы ваш код работал, используйте:

if(usnafeWindow.top != unsafeWindow.self) return;

Обратите внимание на часть unsafe, вы можете просмотреть эти страницы:

Также можно обернуть код в тег <script>:

(function(f){var d=document,s=d.createElement('script');s.setAttribute('type','application/javascript');s.textContent = '('+f.toString()+')()';(d.body||d.head||d.documentElement).appendChild(s);s.parentNode.removeChild(s)})(function(){
   /* code here */
}
...