2014-02-15 38 views
0

我的外部表单中有一个Iframe第三方付款内部表单。 这意味着现在我有两个按钮。一个用于付款表单,另一个用于提交整个表单。 我怎么能激发我的外表发送所有细节,而内部付款形式成功(iframe重定向到另一个特定页面)。Iframe url触发外部形式

BTW,我没有存取权限内第三方支付形式HTML

+0

它应该很简单。我需要在iframe url更改时触发提交按钮的代码.... –

回答

0

使用这样的事情:

<iframe src="inner-form.html" onLoad="checkLocation(this.contentWindow.location);"></iframe> 

而且在javascript:

function checkLocation(url) { 
    if (url !="inner-form.html") { 
     // Code for when iframe location url has been changed 
    } 
} 
0

你可以决定内部表单提交成功后重定向页面的URL?

如果可以,尽量使重定向页面的网址相同的网域的外形,并把脚本在目标页面:

<script> 
    parent.doSubmit(data); // Customize the method name as you want 
</script> 

的问题是,在那里你可以得到data对象,它依赖于第三方支付系统是如何给你支付的结果,大多是在您的网址的查询字符串,那么你可能会得到data这样的:

var data = /payment_result=([^&]+)/.exec(document.location.search)[1]; 

注意上面的代码只是一个简单的例子,所有的事情取决于第3页艺术支付系统。

在你的外在形式的页面,你应该把一个<input type="hidden">元素在你的形式,所以你的形式可能看起来像:

<form action="..." method="POST"> 
    <input type="hidden" id="paymentResult" name="paymentResult" /> 
    ...Other fields 
</form> 

然后在您的外形页,你应该有doSubmit方法:

function doSubmit(data) { 
    document.getElementById('paymentResult').value = data; // Here you should translate the data to a string in order to post it via HTTP 
    document.getElementById('myForm').submit(); 
} 

这是一个粗略的实现,必须修改这些代码以匹配内外形式内形式 - 第三方系统

+0

谢谢,您能否清楚地解释它。我是JS的新手。重定向页面可以是我想要的任何页面 - 没有付款结果。所以我可以把我的代码放在我的域中的新页面,这将触发外部的提交按钮...现在我只需要知道如何去做:) –