编辑 - 这是代码
<html>
<head>
<script type="text/javascript">
var prodURL = "https://blah";
function postwith (to, params) {
var myForm = document.createElement("form");
myForm.method = "post";
myForm.target = "_self";
myForm.action = to;
for (var p in params) {
var myInput = document.createElement("input");
myInput.setAttribute("name", p);
myInput.setAttribute("value", params[p]);
myInput.setAttribute("type", "hidden");
myForm.appendChild(myInput);
}
document.body.appendChild(myForm);
myForm.submit();
}
</script>
<style type="text/css">
#overlayPageLoad {
background: none repeat scroll 0 0 white;
height: 100% !important;
left: 0;
position: absolute;
text-align: center;
top: 0;
width: 100% !important;
}
#overlayPageLoad .middle {
color: #888888;
font-size: 16px;
left: 0;
position: absolute;
top: 50%;
width: 100%;
}
</style>
</head>
<body onload= "postwith(prodURL, {SF_SESSION:'{!$Api.Session_ID}',SF_ENDPOINT:'{!$Api.Partner_Server_URL_120}'})"; >
<div id="overlayPageLoad">
<span class="middle">
<img src="https://prettypicture">
Connecting...
</span>
</div>
</body>
</html>
答案 0 :(得分:2)
现代浏览器只允许打开新窗口直接响应特定的用户生成的操作,例如click
个事件。您无法在其他时间打开它们(例如窗口加载或卸载),因为它曾经是浏览器允许的,并且它很快就被滥用了。所以现在我们有了弹出窗口拦截器。
更新:重新评论:
...业务目前在现有窗口中打开了链接,现在他们想要在另一个窗口中打开..
那你能做到。你可以在链接到新窗口所需页面的页面中进行,而不是打开的页面,如下所示:
<a href="..." target="_blank">text of link</a>
请参阅a
元素的target
attribute。