【问题标题】:_blank target form submition in loop in chrome & IE_blank 在 chrome 和 IE 中循环提交目标表单
【发布时间】:2014-01-26 18:42:41
【问题描述】:

我需要打开多个具有大部分相同但很少有不同值的窗口(Chrome n IE 未按预期执行以下代码)。 这是我的一段 javascript 代码..

function test(){
   for(var i=0; i<3; i++){
      var eForm = document.forms[0];
      eForm.action = "demo_form.asp?targetNum="+i;
      eForm.target = "_blank";
      eForm.submit();
   }
}

这是我的 html 表单..

<form method="post">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="button" value="Submit" onclick="test();">
</form>

此代码与 Firefox 完美运行,并按预期打开 3 个选项卡。但是对于 chrome & IE,它只会打开一个窗口(不确定它是否会覆盖同一选项卡中的先前窗口)。在 chrome 中,它显示最后一个 targetNum 为 2 的窗口,在 IE 中它显示第一个 targetNum 即0。

我的目标是通过 chrome 和 IE 实现 firefox 的行为,即打开具有各自表单值的多个窗口。

在寻找解决方案时的某个地方,我发现了一个论坛帖子,上面写着要在我的表单标签下添加onsubmit="this.action=this.action + '1';",尝试了同样的方法,但没有成功。

P.S.: 不能使用 window.open,因为我正在从 java bean 填充值,并且会被最后一个打开的窗口覆盖。

【问题讨论】:

  • 在 chrome 和 IE 中工作,与您发布的代码相同
  • 您能分享一下您的 chrome 版本吗?我的是 31.0.1650.63m
  • @vikas,它是否在您的 chrome 浏览器上打开了 3 个标签?
  • Chrome 只会阻止一个以上的打开弹出窗口。导致您的表单带有 target="_blank" - 这是一个新的弹出窗口。所以它只打开其中一个。在我的 Chomium 中,我打开了第一个,Chromium 向我显示该站点已阻止弹出窗口。

标签: javascript html forms internet-explorer google-chrome


【解决方案1】:

不确定您是否正在寻找这种解决方案。我已经修改了您的脚本,如下所示。希望对你有帮助。

 var i=0;
function test(){
   var eForm = document.forms[0];
   eForm.action = "demo_form.asp?targetNum="+i;
   eForm.target = "_blank";
    if(i!=3)
    {
     setTimeout(function(){ i++; eForm.submit(); test(); },100); 
    }
}

【讨论】:

    猜你喜欢
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多