2011-03-28 20 views
10

Bir IFRAME içinde yüklenen, IE ve Firefox'ta düzgün çalışan, ancak Opera'da çalışmayan bir web sayfam var. Bundan nefret ediyorum çünkü yıllardır Opera kullanıcısıyım. Ve ben bu şeyi yazdım. :-)Opera, bazı JavaScript dosyalarını yüklenmeyecek

Sorun, Opera'nın sayfayı oluşturan bazı JavaScript dosyalarını yüklemiyor olmasıdır. Sayfanın kendisinin HTTPS ve dahil edilen dosyaların farklı bir ana bilgisayar ve bağlantı noktasından HTTP üzerinden yüklenmesinden kaynaklandığından şüpheleniyorum. Opera'nın buna izin verdiğine inanıyorum ama Dragonfly'nin Net sekmesi bile onları yüklemeye teşebbüs etmiyor.

Bu sayfa bir Rally "özel uygulama" dır ve bir IFRAME içine yüklendiğini veya HTTPS ile yüklendiğini kontrol edemiyorum. Ayrıca, dahil edilen dosyaların farklı bir ana bilgisayardan yüklendiğini veya ana bilgisayarın yalnızca HTTP'yi desteklediğini kontrol edemiyorum. Bu yüzden karışık içeriklerle sıkışıp kaldım. arasında

<script src="http://www.example.com:81/common/jquery-1.4.2.js"></script> 
<script src="http://www.example.com:81/common/jsTree/jquery.jstree.js"></script> 
<script src="http://www.example.com:81/common/utils_jserror.js"></script> 
<script src="http://www.example.com:81/common/utils_logging.js"></script> 
<script src="http://www.example.com:81/common/utils_print_r.js"></script> 
<script src="http://www.example.com:81/common/utils_rally_query.js"></script> 
<script src="http://www.example.com:81/common/json2.js"></script> 
<script src="/slm/js/slm.js"></script> 
<script src="/slm/js-lib/dojo/rally-1.3.1/dojo/dojo.js.uncompressed.js"></script> 
<script src="/slm/mashup/1.18/js/batch-toolkit.js"></script> 
<script src="/slm/mashup/1.18/js/utilities.js"></script> 

"/ slm/..." şeyler TÜM yüklenen oluyor ve YOKTUR: diğer şeyler arasında

, sayfanın HEAD elemanı (ayıklanmış biraz) içeriyor "www.ornek ..." şeyler.

Neyi yanlış yaptığımı bilen var mı?

+0

internette düzenli sunucudan http yüklenen komut, yoksa olduğu Bu sunucu bir intranet veya yerel ana bilgisayarda mı? – hallvors

+1

adresinizi, protokolden bahsetmeden // ile başlatmaya çalıştınız. ex: 'src =" // www.example.com' – karlcow

+0

@hallvors: "example.com" komut dosyaları, yerel intranet üzerindeki bir Windows sunucusundan gelir ve herkese açık Internet'ten erişilemez. tarayıcının çalıştığı makine - eğer bunları kesip adres çubuğuna yapıştırırsam, JavaScript kaynak dosyaları tarayıcıda okunabilir. –

cevap

14

Opera, çapraz ağ koruması olarak adlandırılan bir özelliğe sahiptir. Temel olarak, internetteki sayfaların yerel ağınızdaki şeylerle yapabileceği bazı ekstra sınırlamalar getirir.

Bu özelliğin mevcut olmasının nedeni, bazı popüler ev yönlendiricilerinin/modemlerinin HTTP tabanlı yapılandırma ekranlarının kötü niyetli web sayfalarının çok kötü bir şekilde güvence altına alındığı keşfedildiği, sözde "phish farm" exploitlerinin ortaya çıkmasıdır. Yöneltici ayarlarınızı yeniden yazın - örneğin bir proxy kullanacak şekilde yapılandırın ve tüm trafiğinizi kötü amaçlı bir sunucudan geçirin. Bunu yapmak için Opera, bazı web adreslerinin (ör. 127.0.0.1 veya 192.168. *) Kullanılmadığını ve "herkese açık" bir siteden sayfaların dosya yüklemesine veya istek göndermesine izin vermediğini bilir. yerel "site.

Bunu site bazında yeniden yapılandırabilirsiniz. En kolay şey, muhtemelen, yerel sunucudan kaynaklardan birini yükleyen "genel" sitede bir IFRAME eklenmesidir. IFRAME, bazı katılım bağlantılarına sahip bir "alanlar arası istek" uyarı sayfası gösterecektir. Bu sunucudan yerel isteklere her zaman izin vermek için bağlantıyı tıklayın ve voila - çapraz ağ uygulamanız şimdi yeniden çalışmalıdır.

(IFRAME ekleme tasarruf <iframe src="http://local/whatever/included/file.js"></iframe> ekleyerek kaynağını görüntüleyerek kadar kolaydır ve "Araçlar> Gelişmiş> önbellekten yükle")

+1

Oh, bu sesler ** GERÇEKTEN ** umut verici! Opera'nın yüklenmeyeceği sunucu, muhtemelen Opera'nın yasağıyla eşleşecek olan bir 10.x.y.z adresindedir. Bu çözümü denemek için sabırsızlanıyorum. –

+0

Bu harika çalıştı! Teşekkür ederim! –

İlgili konular