2013-02-05 145 views
7

我想在iframe中獲得父域或url或主機名。如何在跨域的iframe中獲取父域名?

我已經使用了document.referrer,但它只能在第一次使用。通過這個我的意思是我的iframe包含表單,所以當用戶提交表單時iframe再次加載,並且引用者將成爲我的iframe的域。

現在每次我的iframe加載我只想要父域名,因爲我使用它創建鏈接。

例子:

$(".setUrl").each(function(){ 
       var referrer = document.referrer; 
       this.href=referrer+"/abc.html"; 
    }); 

但這隻能是因爲我上面提到的原因是第一次。那麼有人能幫我克服這個問題嗎?

如果需要更多清晰度,請諮詢我。

回答

1

你可以做一兩件事是:

  1. 保存在您的form.And一些隱藏變量的父域/ URL /主機名提交該表格。
  2. 不要在當前網址中設置/保存/使用documentReferrer值。當你需要時,使用隱藏的變量。

你可以用任何邏輯... 如:

var refval=$("#documentReferrer").val(); 
if(refval=="") 
{ 
    $("#documentReferrer").val(referrer); //So, for the future, this will not execute... 
} 
4

你有iFrame中的父域URL(從document.referrer)的那一刻,你可以存儲在該網址localStorage,然後在提交表單之後,從localStorage本身檢索它。

是這樣的:在表單提交

var referringURL = document.referrer; 
//store the url in localStorage 
localStorage['referrer'] = referringURL; 

現在:

var originalReferrer = localStorage['referrer']; 
//you have the original referrer back