我希望有人能幫助我。彈出窗口如何更改其父跨域的頁面位置?
我有一個網站使用JavaScript來打開另一個域中存在的彈出窗口。
在彈出窗口中,我想要一個「立即預訂」鏈接/按鈕,將父網站的頁面更改爲它的booking.htm頁面,然後彈出窗口關閉。
與主網站在同一個域名上沒有託管彈出窗口的可能性。
我曾嘗試兩個碼類型改變頁面的位置...
1)
window.opener.location.href="booking.htm"
2)
window.opener.window.location.href="booking.htm"
在Firefox 6和鉻12 - 兩個1和2完美工作。
在Internet Explorer 8中 - 方法1導致父窗口拋出一個黃色的彈出欄,讓用戶選項暫時允許彈出窗口。方法2在彈出窗口中給出了「頁面錯誤」並給出了「許可被拒絕」的解釋。
在Opera 11.51 - 這兩種方法都在錯誤的控制檯拋出錯誤「:的ReferenceError:安全錯誤:未捕獲的異常試圖寫保護變量」
我敢肯定的是,問題是用做主網站和彈出窗口在不同的域中,但是再次將它們託管在同一個域中不是一種選擇。
所以我問..
- 是有辦法上的彈出來改變其 父頁面位置時,他們在不同的域代碼,該工程跨瀏覽器?
- 爲什麼Internet Explorer在方法1中拋出一個黃色的彈出欄,當我沒有使用window.open時,我正在使用location.href?即我 要求家長改變位置不打開新的彈出窗口。
- 我錯過了使用某種「目標=」代碼?
- 我需要使用某種「返回false」嗎?或者其他的東西?
[我在這裏有一個例子,但現在已經刪除它,因爲我設置了一個額外的虛擬主機帳戶來顯示跨域問題的實際行動。但我現在不需要額外的網絡主機,所以取消它以節省資金。對不便之處]
感謝您閱讀這件事,即使你不能幫助。
Dave
嗨Sonesh。不同的瀏覽器以不同的方式處理這種情況很奇怪,但無論如何,你的建議解決了這個問題,所以非常感謝你。David – David
很高興能有所幫助。 –