在提交 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.referrer
jsFiddle 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 保存到隐藏字段的主要内容,如果未能解决你的问题,请参考以下文章