Как я включаю удаленный файл JavaScript в сценарий Механика?

78 9c является заголовком потока zlib. Действительно, 10 752 байта с этого момента являются действительным потоком zlib, который распаковывается до 21 000 байтов. Четыре байта после "ZIP" и перед 78 9c, то есть 08 52 00 00, это число 21 000 в порядке с прямым порядком байтов.

Итак, ваш формат - «ZIP», за которым следует несжатый размер в четыре байта в порядке с прямым порядком байтов, за которым следует поток zlib.

22
задан Cheekysoft 8 May 2009 в 14:51
поделиться

3 ответа

В последних версиях greasemonkey рекомендуется использовать тег комментария @require.

Например,

// ==UserScript==
// @name          Hello jQuery
// @namespace     http://www.example.com/
// @description   jQuery test script
// @include       *
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==

Однако ... имейте в виду, что jQuery 1.4.1 и 1.4.2 несовместим с этим методом

Спасибо Полу Тарджану за указание на это. См. ветку форума jQuery .

Также следует знать об этой семантике @require

). Во время установки пользовательского сценария Greasemonkey будет загружать и сохранять локально кэшированную копию удаленного файла, которая может читать почти мгновенно. Кэшированная копия хранится в той же папке, что и установленный вами скрипт пользователя. Удаленный файл не отслеживается на предмет изменений.

Обратите внимание, что на момент написания этого ответа этот тег @require читался только во время установки. Если вы отредактируете существующий пользовательский скрипт для добавления этого тега, он будет проигнорирован.

39
ответ дан 29 November 2019 в 04:04
поделиться

Из здесь :

// ==UserScript== 
// @name           jQueryTest 
// @namespace      http://www.example.com/
// @include        * 
// ==/UserScript== 

// Add jQuery 
var GM_JQ = document.createElement('script'); 
GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';
GM_JQ.type = 'text/javascript'; 
document.getElementsByTagName('head')[0].appendChild(GM_JQ); 

// Check if jQuery's loaded 
function GM_wait() { 
    if(typeof unsafeWindow.jQuery == 'undefined') 
{ window.setTimeout(GM_wait,100); } 
        else { $ = unsafeWindow.jQuery; letsJQuery(); } 
} 
GM_wait(); 

// All your GM code must be inside this function 
function letsJQuery() { 

    alert($); // check if the dollar (jquery) function works 
    // the next call fails 
    $("<div id='example' class='flora' title='This is my title'>I'm in 
a dialog!</div>").dialog({ 
            buttons: { 
                "Ok": function() { 
                    alert("Ok"); 
                }, 
                "Cancel": function() { 
                    $(this).dialog("close"); 
                } 
            } 
        }); 
} 

Он отлично работает, но вы можете ограничить сайты, на которых он работает, или разместить файл jQuery js на своем собственном сайте, чтобы не украсть их пропускную способность.

11
ответ дан 29 November 2019 в 04:04
поделиться

Вы можете попробовать динамически создать элемент скрипта:

var script = document.createElement("script");
script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js";
document.getElementsByTagName("head")[0].appendChild(script);

Возможно, вам придется немного подождать, пока скрипт загружается (setTimeout?)

4
ответ дан 29 November 2019 в 04:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: