在不同的域上重定向iframe的父级 - 替代逻辑

时间:2013-02-03 23:03:55

标签: javascript jquery html iframe

我之前已经问过类似的问题,但我想知道是否有人可以帮助找到特定问题的解决方案:

我有一个表单,我想嵌入不同域的几个不同的网站。此表单需要重定向到PayPal。计划是将这个表单嵌入到iframe中,使其易于更新等,加上最少的嵌入代码。但是,由于原始策略相同,我无法使用parent.location.href = "http://PaypalPaymentAddress.com";重定向表单。我不想在框架中处理付款(Paypal无论如何都禁止这样做)......

我能想到的唯一方法是运行脚本并将表单呈现到父页面中,调用Web服务或者获取HTML,但这显然会有很多工作!

我是如何设置它以使其正常工作的?

2 个答案:

答案 0 :(得分:2)

您可以对表单使用目标属性"_parent",当提交时,目标URL将被加载到父窗口中。

答案 1 :(得分:1)

我的最终方法是基于Molle博士的答案,但略有不同。我已经在这里解释过,以防它对其他人有用:

我将表单设置为正常提交,允许我的所有服务器验证等只触发一次。如果表单成功提交(通过服务器验证),则会回发一个包含空表单的小型html客户端页面。

此空表单具有父页面URL的post操作和target =“Parent”,并且在客户端“document ready”上,jQuery方法提交表单,导致父页面重新加载。

如果脚本被禁用,还会提供带有“_ top”属性的链接。

<script type="text/javascript">
    jQuery(document).ready(function () {
        $("#redirectForm").submit();
    });
</script>
<a href="{parentpageurl}" id="redirectLink" target="_top">click here if not redirected automatically</a><br />

<form id="redirectForm" method="POST" action="{parentpageurl}" target="_parent">

</form>

绕过“同源策略”的一种方法,因为此方法适用于跨域。希望能帮助别人!