問題描述
我有一個頁面顯示在一個 iframe 中。
我需要從該頁面 (子頁面) 中的 js 獲取 parent.location.url 。
兩個網站都在不同的域。
我嘗試著:
警報 (parent.location.url)
但是我收到這個錯誤:
http://parentdomain 的許可權被拒絕從 http://childdomain 獲取屬性 Location.URL 。
???? 可能嗎?
最佳解決方案
嘗試這個:
var referrer = document.referrer;
alert(referrer);
次佳解決方案
你本來想做的是不可能的。除非您可以控制父頁面呼叫子頁面。如果這樣做,那麼您可以在父頁面的 URL 中使用 get 語句來呼叫子頁面。所以如果你的父頁面是 http://parentpage.com,那麼這裡你應該如何呼叫 iFrame 。
<iframe src='http://childpage.com/?parent=http://parentpage.com' />
那麼所有你需要做的在子頁面中獲得引用就可以得到字串
window.location.search //not sure of browser compatibility with this
並從該字串中提取父頁面的 URL 。我會提供更多的細節,但我甚至不知道我有第一個問題。
第三種解決方案
你有沒有嘗試像:
alert(window.top.location.href);
第四種方案
只有父頁面和 iframe 位於同一個域上才有效。如果他們不在同一個域上,您可以嘗試透過 src 傳遞位置,如麥迪遜·威廉姆斯建議的。
這可能是為什麼你得到 「許可權被拒絕…」
第五種方案
你可以這樣找到它,所有瀏覽器都應該能夠支援它:
query = window.parent.location.search.substring(1);
你不應該得到這個許可權的錯誤,但我可能是錯的。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。