SORU
27 Mart 2009, Cuma


Hata ayıklama komut jQuery getScript) fonksiyonu eklendi

Dinamik $.getScript) jQuery komut dosyası başvuruları işlevi ekleyen bir sayfa var. Komut dosyalarını yükleyin ve iyi yürütmek, başvuruları doğru olduğunu biliyorum. Eklediğimde ancak, bir "komut herhangi deyim bana bir hata kodu (vs.net, Firebug, vb.), adım sağlamak için hata ayıklayıcı işe yaramıyor. Yol hakkında bir şey komut dosyaları bulma hata engelliyor yükler bir WordPress kullanmak gibi görünüyor.

Kimse bunun için çözüm var mı?

CEVAP
27 Mart 2009, Cuma


Tamam, bu yüzden $.getScript() Bu işlev varsayılan uygulama farklı başvurulan komut dosyası aynı etki alanında olup olmamasına bağlı olarak çalıştığı ortaya çıktı. Olarak: dış referanslar gibi

$.getScript("http://www.someothersite.com/script.js")

harici bir komut dosyası oluşturmak için bir WordPress kullanmak neden olacak herhangi bir sorun ile ayıklanacak olan başvuru.

<script type="text/javascript" src="http://www.someothersite.com/script.js"></script>

Yerel bir komut dosyası başvuru ancak, aşağıdaki gibi dosya:

$.getScript("http://www.mysite.com/script.js")
$.getScript("script.js")
$.getScript("/Scripts/script.js");

sonra jQuery komut dosyası içeriği uyumsuz olarak indirme ve satır içi içerik olarak ekleyin

<script type="text/javascript">{your script here}</script>

Bu ikinci yaklaşım yokdeğiltest ettim herhangi bir hata ayıklayıcı (Studio.NET, Firebug, IE8 Visual Debugger) ile çalışır.

Geçici çözüm, her zaman yerine başvuru içi dış bir içerik oluşturur, böylece $.getScript() işlevi geçersiz kılar. İşte bunu yapmak için komut. Firefox, Opera, Safari ve IE 8'de bu test ettik.

<script type="text/javascript">
// Replace the normal jQuery getScript function with one that supports
// debugging and which references the script files as external resources
// rather than inline.
jQuery.extend({
   getScript: function(url, callback) {
      var head = document.getElementsByTagName("head")[0];
      var script = document.createElement("script");
      script.src = url;

      // Handle Script loading
      {
         var done = false;

         // Attach handlers for all browsers
         script.onload = script.onreadystatechange = function(){
            if ( !done && (!this.readyState ||
                  this.readyState == "loaded" || this.readyState == "complete") ) {
               done = true;
               if (callback)
                  callback();

               // Handle memory leak in IE
               script.onload = script.onreadystatechange = null;
            }
         };
      }

      head.appendChild(script);

      // We handle everything using the script element injection
      return undefined;
   },
});
</script>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008