2012-12-15 6 views
5

jQuerify, şu anda görüntülenen web sayfasına jquery desteği eklemek için kullanılan küçük bir bookmarklet. Bu sayfaya bir bakın: http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet/jQuerify, facebook'ta çalışmıyor chrome

Bu tanıtım jquery önceden indirilmişse, yüklemediyseniz yükleyin ve etkin sürümü görüntüleyin. Sorunum: google chrome ile google chrome ile gezinirken, facebook gibi herhangi bir şey görüntülenmiyor, google (önbelleğe alınmış sayfa değil, sayfa sonuçları) Bu sayfalar IE kullanırken kullanılır.

Kullanıcı google oturumunun chrome bağlantısını kesmeyi denedim, ancak yine de sorun yaşıyorum. https url tarafından neden olduğunu düşündüm. Ama "tüm içeriği göster" onaylandıktan sonra IE'de iyi görünüyor.

Chrome'da yanlış yapılandırma var mı? jQuerify için herhangi bir düzeltme var mı, yoksa jQuery ve uzak komut dosyasını yüklemek için başka bir çözüm bulmalı mıyım?

Tavsiye ettiğiniz için teşekkür ederiz.

cevap

8

Google Chrome'da, tarayıcı konsolunda hata mesajını görebilirsiniz.

Şöyle ki: "komut-src: https: // aşağıdaki İçerik Güvenlik Politikası direktifi ihlal ettiğinden senaryoyu 'http://code.jquery.com/jquery.min.js' yüklemek için reddetti. facebook.com http: // .facebook.com https: // .fbcdn.net http: // .fbcdn.net * .facebook.net * .google-analytics.com * .virtualearth.net .google .com 127.0.0.1: * .spotilocal.com: * chrome-extension: // lifbcibllhkdhoafpjfnlhfpfgnpldfl 'güvensiz satır içi' 'güvensiz-değerlendirme' https: // .akamaihd.net http: // .akamaihd.net " .

Bu Facebook bir HTTP başlığı "X-WebKit CSP" ile uygulanan bir güvenlik özelliğini hayata geçirdi olmasından kaynaklanmaktadır. Facebook'ta şu anki uygulama jQuerify yer işareti Firefox ve IE üzerinde çalışıyor webkit tabanlı tarayıcılar (krom ve Safari) dış komut dosyalarını yükleme etkiler yüzden

. Chrome için

Çözümler, aşağıdaki yaklaşımlar ile bunu yapabilirsiniz: Yukarıdaki detaylarda görebilirsiniz yana

  • , 127.0.0.1:* desteklenmektedir. Sadece sisteminizde basit bir web barındırma (örneğin: Apache web sunucusu) çalıştırın. Jquery javascript dosyasını sisteminizdeki Apache bağlantılı dizine kopyalayın. Şimdi bu dosya http://127.0.0.1/jquery.js gibi bir yolla erişilebilir olacak (Not: http://localhost/'u burada kullanmayın). JQuerify bookmarklet'inde jQuery dosyasının yolunu http://code.jquery.com/jquery.min.js'dan http://localhost/jquery.js'a değiştirin. Şimdi yer imi iyi çalışıyor.
  •               VEYA

    • Yük
    yer işareti içine bütün jQuery kod dış komut dosyalarını yüklemez yüzden.JQuery dosyası ile hata ayıklama için kullanmak isterseniz, bu ilk yaklaşım kadar yararlı olmaz çünkü önerilmez.
+1

Tarayıcı eklentileri yoluyla harici komut dosyalarını yüklemek mümkün olup olmadığını biliyor musunuz? Çok fazla kod yükleyen bir yer imi sahibim ve herhangi bir koşulda yerel bir web sunucusunu çalıştırmayan kişiler tarafından kullanılması gerekiyor. – Max

+0

https://builder.addons.mozilla.org/ ve https://developer.mozilla.org/en-US/docs/XUL/School_tutorial adresini deneyin ... Firefox için bu uzantıları üretebilmeniz gerekir ... Bunu herkese açık olarak yayınlamak isterseniz Mozilla'nın politikalarından geçmeniz gerekecek ... benzer şekilde Chrome ve Opera için kaynaklar bulabilmeniz gerekir ... VEYA ... JS dosyalarının yüklenmesini ve önbelleğe almayı etkinleştirmesini sağlayabilirsiniz. tekrar kullanımı iyi çalışıyor (önbellek denetimi HTTP üstbilgisi ... http://jsbookmarklets.com/ adresindeki bookmark'lar için görebileceğiniz gibi) –

+0

Yüklemeniz gerekiyorsa, tüm kodu yer imine yerleştirmek işe yaramaz Aksi takdirde etki alanları arası kısıtlamalarla önlenebilecek bir alandaki bir sunucuya istekte bulunmak için gizli bir IFRAME içinde başka bir site. "tarayıcı yer imleri, CSP tarafından etkilenmemelidir ... Ancak, tarayıcılardan hiçbiri doğru değil. Hepsi de CSP ihlallerine neden oluyor ve bookmarklet'in çalışmasını engelliyor." https://github.com/blog/1477-content-security-policy Gerçekten, bu tüm tarayıcılarda düzeltilmesi gereken bir hatadır. – Michael