Несколько jQ.src в Bookmarklet - PullRequest
0 голосов
/ 16 мая 2011

Это мой текущий код букмарклета.

if (1 == 1) {
    var jQ = document.createElement('script');
    jQ.type = 'text/javascript';
    jQ.onload=runthis;
    jQ.src = 'http://www.domain.com/jquery-1.5.2.min.js';
    document.head.appendChild(jQ);
}

Я хочу вызвать несколько jQ.src. Я попробовал это, однако это не работает на некоторых сайтах.

Это мой текущий код букмарклета.

if (1 == 1) {
    var jQ = document.createElement('script');
    jQ.type = 'text/javascript';
    jQ.onload=runthis;
    jQ.src = 'http://www.domain.com/jquery.js';
        jQ.src = 'http://www.domain.com/jquery2.js';
    document.head.appendChild(jQ);
}

На некоторых сайтах это работает, а на других - нет.

Спасибо!

1 Ответ

1 голос
/ 16 мая 2011

Вы уверены, что работает на некоторых сайтах?Я думаю, вам просто повезло, и вы взяли уже загруженный сайт jQuery.

В любом случае, если вы хотите добавить два файла JavaScript, вам придется добавить два тега скрипта:

var jQ  = document.createElement('script');
jQ.type = 'text/javascript';
jQ.src  = 'http://www.domain.com/jquery.js';
document.head.appendChild(jQ);

jQ        = document.createElement('script');
jQ.type   = 'text/javascript';
jQ.src    = 'http://www.domain.com/jquery2.js';
jQ.onload = runthis;
document.head.appendChild(jQ);

Также обратите внимание, что onload находится только на втором, так как вам, вероятно, понадобятся оба файла JavaScript, загруженные до того, как runthis будет работать.

Если вы загружаете jQuery, вы можете проверить, еслистраница уже загрузила его:

var jQ;
if(typeof window.jQuery != 'function') {
    // jQuery isn't there yet so load it up.
    jQ      = document.createElement('script');
    jQ.type = 'text/javascript';
    jQ.src  = 'http://www.domain.com/jquery.js';
    document.head.appendChild(jQ);
}
jQ        = document.createElement('script');
jQ.type   = 'text/javascript';
jQ.src    = 'http://www.domain.com/jQuery2.js';
jQ.onload = runthis;
document.head.appendChild(jQ);

Добавление вызова jQuery.noConflict() также может быть хорошей идеей, страница может использовать $ для чего-то другого, поэтому принудительное использование jQuery может привести к разрыву страницы.

...