如何在跨域的iframe中获取父域名?

时间:2013-02-05 06:42:02

标签: javascript jquery iframe

我想在iframe javascript中获取父域名或网址或主机名。

我已经使用了document.referrer,但它只在第一次使用。我的意思是我的iframe包含表单,因此当用户提交表单时,iframe会再次加载,而引荐来源将成为我的iframe域。

现在每次我的iframe加载时我都只想要父域名,因为我正在使用它创建链接。

示例:

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

但这只是第一次有效,因为我上面提到的原因。那么有人可以帮助我克服这个问题吗?

如果需要更清晰,请询问我。

2 个答案:

答案 0 :(得分:4)

当您在iFrame(来自document.referrer)中拥有父域URL时,您可以将该URL存储在localStorage中,然后在提交表单后,从 localStorage中检索它自己。

类似的东西:

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

现在提交表单后:

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

答案 1 :(得分:1)

你可以为此做一件事:

  1. 将您的父域/网址/主机名保存在表单中的某个隐藏变量中。并提交该表单。
  2. 不要从当前网址设置/保存/使用documentReferrer值。如果需要,请使用隐藏变量。
  3. 你可以使用任何逻辑...... 例如:

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