【问题标题】:Before IFRAME form is submitted, save the parent url to hidden field在提交 IFRAME 表单之前,将父 url 保存到隐藏字段
【发布时间】:2014-10-30 11:47:18
【问题描述】:

我在 iFrame 中显示我的联系表(用于潜在客户)。我需要做的是保存父 url,然后在提交表单之前(或在页面加载时)将此 url 插入到我的隐藏字段中。我需要知道表单是从哪个 url 提交的。

我的代码仅适用于 chrome 控制台。但是当我将此代码放在父 html 中时,代码在那里但不起作用

jQuery(".gfiframe").contents().find("#gform_submit_button_1").click(function(){
    jQuery(".gfiframe").contents().find("#input_1_2").val('test');
});

要获取我使用的父网址

var $location = location.host;

【问题讨论】:

  • 我认为您无法从 iframe 中获取父级的 URL:stackoverflow.com/questions/3420004/…
  • @jwatts1980:链接的问题/答案仅适用于 iframe 位于不同域中的情况,如果两者位于同一域中,您可以让它们通过 @ 进行交互987654324@或window.top

标签: javascript jquery html forms iframe


【解决方案1】:

location.host 是相对于 iframe 的。而是使用document.referrerjsFiddle Example

当 iframe 的 HTTP 标头被发送时,iframe 的父级将作为引用者发送,因此使用 document.referrer 将导致 iframe 的父级 URL

更新:在您的 iframe 中,而不是在外部,使用 jQuery 将父 url 添加到正在提交的表单中

$('input.parent_url').val(document.referrer);

【讨论】:

  • 您好,抱歉耽搁了。这对我没有帮助,因为 iframe 和父级位于不同的位置。
    现在我正试图通过 postMessage 使这项工作真正实现跨域消息传递
  • 使用document.referrer 完全按照示例演示的那样做。 jsfiddle.net/djeeoecq/3第一个alert是jsfiddle的iframe,第二个是iframe所在页面的url
  • 您必须从 iframe 中保存 url,而不是从父级访问它
猜你喜欢
  • 2011-02-03
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 2015-06-13
  • 1970-01-01
  • 1970-01-01
  • 2015-10-11
  • 2012-02-23
相关资源
最近更新 更多