3

jQueryをロードするこのスクリプトをロードするboolmarkletがあります。サイトにすでにロードされている jQuery と競合しないようにしています。

私がこれを行うとき:

/* Loading jquery and making sure we don't enter in conflict with
another js lib or another jquery */
var oldJquery;

if (typeof jQuery !== "undefined") { 
    log('jQuery is present. Setting noConflict() on', jQuery().jquery)
    oldJquery = jQuery.noConflict(true); 
} else {
    oldJquery= false;
}

log('Starting to load jQuery')
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://code.jquery.com/jquery-1.8.3.min.js?' + (new Date().getTime());
script.onreadystatechange = function() {
    setTimeout(function(){
    log('jQuery is loaded. Starting BM with', $().jquery)
    bookmarklet(jQuery.noConflict(true))
    if (oldJquery){
        log('Restore old jQuery reference')
        jQuery = oldJquery;
        $ = jQuery;
    }
    }, 4000)

};
script.onload = script.onreadystatechange
head.appendChild(script);

私はこの出力で終わります:

############# RESTART #############

jQuery is present. Setting noConflict() on1.4.4
Starting to load jQuery
jQuery is loaded. Starting BM with 1.4.4
Scratchpad (ligne 312)
BM is started with jquery version 1.4.4
Scratchpad (ligne 27)
Display alert: Please wait...
Load view jQuery viewport plugin and wait for DOM ready
Restore old jQuery reference

「BMはjqueryバージョンで開始されます」のjqueryバージョンとして1.8.2を持っていないのはなぜですか?

($|jQuery).noConflict([true])私は成功せずにさまざまな組み合わせを試みました。キャッシュを空にするだけでは十分ではないようです。とにかく、エンド ユーザーにそうするように頼むことはできません。

4

0 に答える 0