始终在同一窗口(而非父窗口)中打开target =“_ blank”

时间:2015-07-07 22:54:16

标签: javascript html google-chrome mobile browser

我有一个设置了target = _blank的表单,该表单按预期工作,但我希望在同一个窗口中打开提交表单,无论我怎么提交。它有意义吗?例如:

目前的行为是:

  • “父窗口”的格式为
  • 第一次提交第二个窗口时,让我们叫“Window Child 1”(直到这里没事)
  • 当我第二次提交表单时,会加载另一个子窗口(我不想这样)

我需要的行为:

  • 当我第二次提交表单时,我需要在第一次提交使用“Window Child 1”的同一窗口上获取内容。这样做我希望在同一个窗口上用第二个提交覆盖第一个提交的结果。

我做了这个jsfiddle http://jsfiddle.net/5jmnk1rm/

<form action="/" method="post" id="form1" target="_blank">   
    <input type="submit" value="Submit" />        
</form>

注意:我不应该使用window.open(由于其他代码等等)

更新

我已将target =“_ blank”更改为target =“customName”,并在Chrome移动版(iOS)中打开了不同的窗口。我开始认为这是浏览器上的一个错误

2 个答案:

答案 0 :(得分:6)

您需要做的就是用特定名称替换_blank。

<form action="/" method="post" id="form1" target="foo">   
    <input type="submit" value="Submit" />        
</form>

然而,您可能遇到其他一些复杂问题,例如某些浏览器会打开一个新选项卡,而不是窗口。

其他信息

如果您需要在新窗口中强制打开,无论用户的浏览器如何配置,您都别无选择,只能使用window.open。通过设置高度和宽度选项,可以强制打开窗口,而不是选项卡。

答案 1 :(得分:1)

您需要提供窗口的名称。 _blank是一个特殊情况,它将始终创建一个新窗口。如果指定target="my-form"或其他名称,它将重用子窗口。