窗口焦点在Javascript中不起作用

时间:2019-07-01 05:59:09

标签: javascript window focus

当我单击“笔记本”按钮时,我希望它打开Notebook.html,如果第二次单击它,我希望“笔记本.html”进入焦点而无需刷新。 (用户更新Notebook.html,刷新将丢失他们更新的数据。)

这部分起作用,但是它确实刷新了页面,并且我丢失了所有已添加的数据。

<script>
function openNotebook() {
    window.open('notebook.html', "notebook","width=800, height=600, resizable=yes, top=50, left=10").focus();
}
</script>

<button type="button" class="btn btn-primary" onclick="return openNotebook()">Notebook</button>

1 个答案:

答案 0 :(得分:1)

尝试一下

  • 测试是否已打开
  • 返回false以停止可能的表单提交或使用type =“ button”
  • 删除参数中的空格

var w;
function openNotebook() {
  if (w && !w.closed) w.focus(); // focus if exists and is not closed
  else w = window.open("notebook.html","notebook",
    "width=800,height=600,resizable,top=50,left=10");

  return false; // or preventDefault or make the button type="button"
}

测试w.closed的替代方法是,通过将其添加到notebook.html中,将其从开瓶器中移除

window.onbeforeunload=function() { opener.w=null; }