我有一个父页面,上面有PayPal
按钮。按下按钮将触发迷你浏览器,用户可以登录并付款。
以下代码在用户成功付款后关闭PayPal迷你浏览器。
// Add javascript to close Digital Goods frame. You may want to
// add more javascript code to
// display some info message indicating status of purchase in
// the parent window
response.setContentType("text/html");
response.getWriter()
.println(
"<script>\n alert(\"Payment Successful\");\n// add relevant message above or remove the line if not required \n window.onload = function(){\nif(window.opener){\nwindow.close();\n}\nelse{\nif(top.dg.isOpen() == true){\ntop.dg.closeFlow();\nreturn true;\n}\n}\n};\n</script>");
迷你浏览器已成功关闭,但我的应用程序上的父页面保持不变。如何使用付款状态更新父页面?
答案 0 :(得分:5)
我通过在window.close();
之前添加以下JS代码来访问父页面上的表单来解决这个问题。获取表单后,我可以提交页面或显示有关状态的对话框通知。
window.onload = function() {
if (window.opener) {
window.opener.document.forms[0].submit(); // submit form
window.close();
} else {
if (top.dg.isOpen() == true) {
top.document.forms[0].submit(); // submit form
top.dg.closeFlow();
return true;
}
}
};