我正在尝试将 3D Secure 支付逻辑与 javascript 集成。当我将信用卡信息发布到银行时,我收到了一个回复 html。这个 html 将屏幕重定向到银行的 3D 密码屏幕,即
<html>
<head>
<title>MDpay default response template for web</title>
</head>
<body bgcolor="#02014E" OnLoad="OnLoadEvent();" >
<form name="downloadForm" action="https://katmai.est.com.tr/mdpayacs/pareq" method="POST">
<!-- Some Input Fields -->
</form>
<SCRIPT LANGUAGE="Javascript" >
function OnLoadEvent() {
document.downloadForm.submit();
}
</SCRIPT>
</body>
</html>
如果我们想在弹出屏幕中打开这个 html,OnLoadEvent 不会被触发:
var popup = window.open('','');
popup.document.write("'"+data+"'");
popup.focus();
但是,如果这确实有效,那一切都很好。我在正文中调用 onload 函数,所以我不在乎在 OnLoad 中要调用的函数是什么。
var popup = window.open('','');
popup.document.write("'"+data+"'");
popup.document.body.onload();
popup.focus()
但是,我们不想在弹出窗口中执行此操作,我们不想打开新的选项卡或页面。我们想在从用户那里获取值的同一屏幕上执行此操作。所以我将返回的 html 写入一个 div,但是因为一个 html 中不能有 2 个 body 标签,浏览器不包含新的 body 标签其中包括 OnLoad 函数名称..
document.getElementById('vpos').innerHTML=data;
document.downloadForm.submit() // this is the code that works in OnLoad function.if a write that code statically of course it works, but this code logic can always change.
我将如何解决这个问题。希望我清楚..