問題描述

我有一個頁面顯示在一個 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇