2010-07-16 10 views
10

Bir javascript komut dosyasını uzak bir kaynaktan indirmek ve yürütmek için javascript konsolunda çalıştırabileceğim bir tek liner var mı?Bir javascript konsolunu javascript konsolundan dinamik olarak nasıl yükleyebilir ve çalıştırabilirim?

this script'u indirmenin güzel bir yolu olup olmadığını görmek ve jQuery yüklü olmayan rastgele sayfalarda etkileşimli olarak denemek için kullanmak istiyordum.

[değiştir: Ben dinamik bir komut dosyası öğesi oluşturabilir ama orada bunu yapmak için güzel bir yoldur farkındayım?]

cevap

9

) Bunun için biraz senaryo yazdım.

var loadjQuery = function(cb){ 
    if(typeof(jQuery) == 'undefined'){ 
    var scr = document.createElement('script'); 
    scr.setAttribute('type', 'text/javascript'); 
    scr.setAttribute('src', 'http://code.jquery.com/jquery-latest.js'); 

    if(scr.readyState){ 
     scr.onreadystatechange = function(){ 
      if(scr.readyState === 'complete' || scr.readyState === 'loaded'){ 
       scr.onreadystatechange = null; 
       if(cb === 'function'){ 
        args = [].slice.call(arguments, 1); 
        cb.apply(this, args); 
       } 
      } 
     }; 
    } 
    else { 
     scr.onload = function(){ 
      if(cb === 'function'){ 
       args = [].slice.call(arguments, 1); 
       cb.apply(this, args); 
      } 
     }; 
    } 

    var head = document.getElementsByTagName('head')[0]; 
    head.insertBefore(scr, head.firstChild); 
    } 
} 

Bu, tarayıcılar arası çalışır.

düzenlemek

Bir geri arama ile bir fonksiyonu olarak o senaryoyu güncelledik. Özet olmalıdır:

loadjQuery(function(something){ 
    // execute code after library was loaded & executed 
}); 
+0

güzel! Sadece kodunuzu denediniz ve iyi çalışıyor. Eğer krom yüklenen ve kısayol kullanımı kolay vermek için bir yol olsaydı hoş olurdu ... Ben bir Chrome uzantısı yazmak zorunda şey tür tahmin ediyorum. +1. – jkp

+0

'scr.setAttribute ('type', 'text/javascript');' gereksizdir. Ayrıca, scr.setAttribute ('src', ...) 'yerine' scr.src = ... 'kullanabilirsiniz. – James

+0

"cb" değişkeni nedir? – Zuks

1
+0

problemi tavuk ve yumurta var! JQuery'yi yüklememiş sayfalara yükleyebilmek istiyorum. Herhangi bir oranda, eğer yapabilirlerse, açıkça mümkün, daha iyi bir yol olmadığı sürece dinamik olarak komut dosyaları oluşturduklarını tahmin ediyorum. – jkp

1

Peki, uzun javascript pasajı alıp

Bu yaklaşım bir Oneliner içine togehter karıştırmak olabilir birkaç satır alır :) tek hattına hep birlikte koymak için oldukça basittir (ama sanırım daha kısa bir çözüm arıyorsun). Google AJAX kitaplıklarını yüklemek için iki komut dosyası etiketinin içeriğini değerlendirmeniz gerekir - hepsi bu. İlkini almak için arama yapman gerekebilir.

+0

evet, sanırım haklısın, sanırım bu sadece bir bookmarklet :) [değiştir: birisi bana onu döv! http://www.learningjquery.com/2006/12/jquerify-bookmarklet - şimdi sordum sevindim ....] – jkp

+0

doğru, bu yer imi işlevsellik - sık sık firebug lite eklemek için kullanın – Thariama

İlgili konular