8

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

我已经用过document.referrer,但它只在第一次工作。我的意思是我的 iframe 包含表单,因此当用户提交表单时,iframe 会再次加载,并且引用者将成为我的 iframe 的域。

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

例子:

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

但由于我上面提到的原因,这只适用于第一次。那么有人可以帮我克服这个问题吗?

询问我是否需要更清楚。

4

2 回答 2

4

当您在 iFrame 中拥有父域 URL(来自 document.referrer)时,您可以将该 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
于 2013-02-05T07:21:16.987 回答
1

你可以为此做一件事:

  1. 将您的父域/网址/主机名保存在表单中的某个隐藏变量中。然后提交该表单。
  2. 不要从当前 url 设置/保存/使用 documentReferrer 值。需要时,使用隐藏变量。

您可以使用任何逻辑...例如:

var refval=$("#documentReferrer").val();
if(refval=="")
{
     $("#documentReferrer").val(referrer); //So, for the future, this will not execute...
}
于 2013-02-05T07:18:45.240 回答