Javascript链接无法在新窗口中打开

时间:2014-03-31 09:17:03

标签: javascript

所以我有下面的代码正在处理所有用户吧。在该用户的机器上,它在链接窗口中打开,而不是打开一个新窗口。这引起了我不会在这里讨论的问题!

据我所知,在用户的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(但其他用户也没有相同的问题)

2 个答案:

答案 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事件之前触发了您的功能 - 例如,当按下提交按钮或类似事件时 - 那么在提交表单时您应该会看到新目标被使用。