Включение удаленного файла JS через прямое внедрение кода с помощью greasemonkey - PullRequest
1 голос
/ 07 марта 2012

Я пытаюсь напрямую вставить ссылку на скрипт javascript в веб-страницу с помощью greasemonkey. По какой-то причине, это не похоже на работу. У меня есть следующий код:

    var headID = document.getElementsByTagName("head")[0];         
    var newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.src = 'http://cubes-workbench.googlecode.com/files/test.js';
    headID.appendChild(newScript);

Любая помощь будет принята с благодарностью. Спасибо.

1 Ответ

2 голосов
/ 07 марта 2012

Ваш код должен работать, если (выберите 1 или более):

  • Документ на самом деле не имеет <head>. Не все страницы или iFrames делают.
  • Сценарий Greasemonkey настроен на запуск при запуске документа.
  • Существует дополнение для браузера, которое блокирует JS - NoScript , AdBlock , RequestPolicy и т. Д.
  • Брандмауэр или другое приложение безопасности или устройство блокирует этот сценарий.
  • Директивы include , exclude или match предотвращают запуск сценария GM на странице или в iFrame, как вы ожидаете.
  • Что-то еще?

Для начала используйте стандартную функцию. Попробуйте это:

function addJS_Node (text, s_URL, funcToRun) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    scriptNode.type                         = "text/javascript";
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;
    if (funcToRun)  scriptNode.textContent  = '(' + funcToRun.toString() +
    ')()';

    var targ    = D.getElementsByTagName('head')[0]
                || D.body || D.documentElement;
    targ.appendChild (scriptNode);
}

addJS_Node (null, 'http://cubes-workbench.googlecode.com/files/test.js');


Если это не сработает, опубликуйте свой полный скрипт GM и дайте ссылку на целевую страницу.

...