【问题标题】:target="_blank" does not open new windowtarget="_blank" 不打开新窗口
【发布时间】:2018-06-02 23:32:48
【问题描述】:

target="_blank" 不打开新窗口,只在同一个窗口中导航到新页面,如下图:

<form onSubmit="return process();" target="_blank"> 
<input type="text" name="url" id="url"  placeholder="Product ID"> <input type="submit" value="Search">
</form> 
<script>
function process(){
    var url= "https://myurl.com/products/" + document.getElementById("url").value.trim();
    location.href=url; return false;
}
</script> 

【问题讨论】:

  • 您的process 函数明确分配给当前窗口的location.href...?

标签: javascript html


【解决方案1】:

当您单击该按钮时,代码会立即触发,因此您的代码将导航到另一个页面,但位于同一选项卡中。

target="_blank" 仅在表单具有将数据发送到的操作时才有效。

请改用window.open(url)

function process() {
  var url = "https://myurl.com/products/" + document.getElementById("url").value.trim();
  window.open(url);
  return false;
}
<form onSubmit="return process();" target="_blank">
  <input type="text" name="url" id="url" placeholder="Product ID"> <input type="submit" value="Search">
</form>

或者在你的流程函数中将url分配给表单的action属性,并删除return false

我将表单命名为f

function process() {
  var url = "https://myurl.com/products/" + document.getElementById("url").value.trim();
  document.f.setAttribute('action', url);

}
<form onSubmit="return process();" name="f" target="_blank">
  <input type="text" name="url" id="url" placeholder="Product ID"> <input type="submit" value="Search">
</form>

【讨论】:

  • 解决了!非常感谢!
  • 乐于助人:)
  • @James 如果这是正确答案,应该这样标记。
猜你喜欢
  • 2011-02-02
  • 2015-01-16
  • 1970-01-01
  • 2012-04-20
  • 2011-03-28
  • 2012-07-13
  • 2015-09-25
  • 2013-09-17
相关资源
最近更新 更多