2011-03-03 21 views
5

kardeş alt alanlı JavaScript kodu:Alanlar arası iki web uygulamaları kurulumları sahip

david .example.com ve john .example.com

David John için yeni bir pencere açar :

window.open('john.example.com'); 

John geç David geri bir giriş elemanı olarak ayarlamak istiyor:

$("#input", window.opener.document).val("Hello David."); 

Sorunum, etki alanları arası komut dosyası güvenliği nedeniyle bu durumun çoğu tarayıcıda çalışmadığıdır. Ayrıca David ve John’da farklı alan adı kombinasyonlarına document.domain ayarını denemeden denedim.

Bu, John'un example.com üzerindeyse ve her ikisinin de example.com olarak ayarlanmış document.domain olması durumunda, bunun işe yaradığı tek zamandır. Ancak, example.com ana sitemizdir ve bir çözüm olarak mevcut değildir.

Çözüm, tüm modern güvenlik bilinçli tarayıcılarda çalışırken yukarıdaki örnekte yapabileceğim bir yol var mı?

Notlar

  • Ben example.com ve tüm alt etki alanlarının kontrol ederler.
  • David ve John, ayrı web uygulamalarıdır ve aynı alt etki alanında barındırılamaz.
+0

için Kredili

document.domain = location.host.replace(/^.*?([^.]+\.[^.]+)$/g,'$1'); 

siz "example.com ana sitesidir ve bir çözüm olarak kullanılamaz. Ancak" ile neyi kastediyorsunuz? "Document.domain" öğesini "example.com" a ayarlamak doğru çözümdür. – RoToRa

cevap

8

Hem DOM'larda document.domain'i ayarladığınız sürece, bunu yapabilmeniz gerekir. Martin Jespersen

+0

Sizler bir efsane var! :) – GateKiller

+0

Size 5 dakika içinde cevap vereceğim, SO bana izin verdi :) – GateKiller

+0

Teşekkürler, projenizde bol şans. –

-1

Web alanları arası iletişim için iframe'leri her zaman kullanabilir ve iletiler aracılığıyla ileti gönderebilirsiniz. Örnek için this'a bakın. Temelde Facebook bağlantısı gibi şeylerin işleyişi. Bir uygulama diğer pencereyi açarsa, tahmin ediyorum ki bunu normal pencerelerle de yapabilirsiniz.

+0

Artık Chrome ve FF4 gibi modern tarayıcılarda çalışmaz :( – GateKiller

+0

Değil mi? Yeni bir tarayıcıda mevcutsa HTML5 özelliklerini kullanabileceğinizi tahmin ediyorum (bkz. Http://html5demos.com/postmessage2) –

İlgili konular