在提交 IFRAME 表单之前,将父 url 保存到隐藏字段

Posted

技术标签:

【中文标题】在提交 IFRAME 表单之前,将父 url 保存到隐藏字段【英文标题】:Before IFRAME form is submitted, save the parent url to hidden field 【发布时间】: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:***.com/questions/3420004/… @jwatts1980:链接的问题/答案仅适用于 iframe 位于不同域中的情况,如果两者位于同一域中,您可以让它们通过 @ 进行交互987654324@或window.top 【参考方案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,而不是从父级访问它

以上是关于在提交 IFRAME 表单之前,将父 url 保存到隐藏字段的主要内容,如果未能解决你的问题,请参考以下文章

提交表单后的 IE-8 Iframe 页面重定向问题

form表单提交方式

form表单提交方式

form表单的6种提交方式

form 无刷新页面提交表单

php Postback & Javascript:表单提交后页面刷新