2009-09-18 79 views
3

這是設置:跨域彈出窗口

我有兩個不同的領域兩個網站:

  • www.website1.com
  • www.someotherwebsite.com

這是我想要做什麼:

  1. 當用戶在www.website1.com並點擊一個鏈接,我希望有一個窗口彈出顯示www.someotherwebsite.com

  2. 當用戶單擊彈出窗口(顯示www.someotherwebsite.com)我想該窗口關閉,並有一個返回值的按鈕。

  3. 我想從彈出窗口返回的值放置在一個div中,或放入一個javascript調用或某個地方可訪問,如填寫一個表單字段)www.website1.com

我希望這是有道理的。我只需要使用HTML和Javascript而無需外部庫。它也必須適用於目前主流的瀏覽器(即不是HTML5的東西)。

非常感謝您的幫助。

回答

3

那麼,如果你使用iframe在你的彈出窗口[年齡在這一天,我會避免彈出像瘟疫由於彈出攔截窗口]

有了一個iframe就可以使cross domain calls

你爲什麼不開發一個從A到B的Web服務並從A調用它?看起來比在瀏覽器中發現微小的裂縫來解決安全問題要乾淨得多。

+0

+1代理網絡服務推薦。似乎很適合,除非B需要來自用戶的一組交互性。 – 2009-09-18 14:48:53

+2

謝謝!這使我指出了正確的方向。 我最終做的是: 1)網站A創建一個指向網站B的iframe www.b.com/iframe 2)網站B在iFrame上彈出一個窗口也在網站B上www.b.com/control 3)控制進行任何它想要的處理。當用戶點擊關閉按鈕JavaScript是用來推動結果回www.b.com/iframe頁 4)www.b.com/iframe修改父頁面的哈希結果傳遞迴到那裏 5 )父頁面做什麼,將與結果 – user5722 2009-09-18 22:20:28

+0

參考文獻: http://softwareas.com/cross-domain-communication-with-iframes http://ajaxpatterns.org/Unique_URLs 的http:// chiragrdarji。 wordpress.com/2007/03/10/call-parent-windows-javascript-function-from-child-window-or-passing-data-from-child-window-to-parent-window-in-javascript/ – user5722 2009-09-18 22:21:30

2

您可以將彈出窗口中的值從www.someotherwebsite.com發回到www.website1.com上的特殊頁面。現在你回到了原始域,那個頁面獲得了GET值並將它寫入了一些JavaScript。然後JavaScript使用opener.document.getElementById在opener窗口的某處更新值,或者用opener.document.doSomething(val)之類的東西在opener中調用一個函數;處理響應。

它充滿了潛在的錯誤(如果用戶打開窗口的兩個副本?或關閉原始網站?)以及潛在的安全漏洞,並且如果您嘗試對Windows執行操作,瀏覽器有反應不佳的傾向不存在或處於不同的域,但在已知的環境中它應該工作。