我的目标是在用户点击链接时打开一个新窗口,然后重新加载主页面以返回到之前的内容。下面的第一个代码片段适用于IE和FireFox,但不会在Safari中弹出新窗口。第二个代码片段适用于所有3个浏览器,但在Safari中不执行history.go(-1);返回主窗口的上一页。
另外,在第二个片段中,如果我把“return true;”在“history.go(-1);”之后history.go(-1);确实有效但新窗口没有弹出(target =“”_ blank“”)。
有什么建议吗?
谢谢, 莱恩
<html> <body> <form id="sso" method="POST" action="/apps/Integration/SsoUtil/SiteTransfer/SsoSignonSaml2Url.aspx" target="_blank" >
<input type="hidden" size=150 name="SsoEncryptedData" value="<%=cd.ToSsoEncryptedB64()%>" /> </form> </body>
<script>
sso.submit();
history.back(); </script> </html>
------------------WORKS IN SAFARI BUT DOESN"T RELOAD THE PARENT PAGE-----------------------
<%
Response.Write("<html>")
Response.Write("<body onload=""document.getElementById('sso').submit();return true; history.go(-1);"">")
Response.Write("<form id=""sso"" method=""POST"" action=""/Apps/Integration/SsoUtil/SiteTransfer/SsoSignonSaml2Url.aspx"" target=""_blank"">")
Response.Write("</form><br/>")
Response.Write("</body>")
Response.Write("</html>")
Response.End()
%>
-------------------------------------------------------------------------------------------
答案 0 :(得分:0)
尝试
<script>
sso.submit();
setTimeout(function() { history.back();},1000)
</script>
然后在提交时尝试从您的服务器返回<script>opener.history.back()</script>
最后,为表单提供一个提交按钮,然后尝试单击它而不是提交表单
document.getElementById('subbut').click()