所以我有下面的代码正在处理所有用户吧。在该用户的机器上,它在链接窗口中打开,而不是打开一个新窗口。这引起了我不会在这里讨论的问题!
据我所知,在用户的PC上启用了Javascript(即选项 - >安全性 - >自定义级别 - >启用活动脚本)以及其他任何想法?
<form action="http://www.website.com" method="post" onsubmit="target_popup(this)">
<input name="userid" type="hidden" value="[userid]" />
<input type="submit" value="New Window" />
</form>
<script type="text/javascript">
function target_popup(form) {
window.open('', 'formpopup', 'width=1100,height=750,resizable,scrollbars');
form.target = 'formpopup';
}
</script>
它是Windows 7.浏览器是一个内置的应用程序,但我认为它基本上是IE9,弹出窗口应该弹出一个合适的IE9窗口(而不是在应用程序的浏览器中打开,这就是它需要的原因)进入一个新窗口)
她也在PC上安装了Chrome(但其他用户也没有相同的问题)
答案 0 :(得分:1)
您需要在提交时返回false,否则表单将在您的弹出窗口激活之前更改页面。
由于某些浏览器需要稍微弄清楚窗口是否已打开,因此您需要使用setTimeout并测试弹出窗口阻止程序
我无法想象在新窗口中弹出将从Chrome打开IE9,除非协议是IE9设置识别的协议。
那说,试试
<form id="form1" action="http://www.website.com" method="post" onsubmit="return target_popup(this)">
<input name="userid" type="hidden" value="[userid]" />
<input type="submit" value="New Window" />
</form>
<script type="text/javascript">
function target_popup(form) {
form.target = 'formpopup';
var w = window.open('', 'formpopup', 'width=1100,height=750,resizable,scrollbars');
if (w) {
setTimeout(function() { document.getElementById("form1").submit()},100);
return false;
}
return true; // submit anyway since a popup blocker was active
}
</script>
答案 1 :(得分:0)
我相信一旦submit
事件被提出,表单目标已被选中。
如果在引发submit
事件之前触发了您的功能 - 例如,当按下提交按钮或类似事件时 - 那么在提交表单时您应该会看到新目标被使用。