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

  • ElChakotay Andrich

    ElChakotay A

    10 EKİM 2013
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • NYLON Video

    NYLON Video

    11 Aralık 2006