首页 > 解决方案 > 如何在不使用 window.close() 的情况下在 chrome 中使用 javascript 关闭当前选项卡?

问题描述

我想创建一个用于进行在线考试的网页,因此如果用户切换到其他选项卡,则必须在第一次查看后结束考试并且必须关闭当前选项卡。

我已经在 J​​avascript 中使用页面可见性 API 来查找用户切换到其他的视图数量tabs.window.close()在 chrome 中不起作用。

if(document.hidden==true){
      views++;
      if(views==1){
        close_window();return false();
      }

      alert( "Your view count is: <b>" + views +
      ". " + "Your page current state is: " +
      document[(prefix === "" ? "v" : prefix + "V") + "isibilityState"] + "</b><br />");

  }
  }
  function testPageVisibilityApi() {
    if (prefix === null)
      document.getElementById("log").innerHTML = "Your browser does not support Page Visibility API";
    else {
      document.addEventListener(prefix + "visibilitychange", countView);
      countView();
    }
  }

有什么建议么?

标签: javascripthtml

解决方案


JS:

function close_window() {
  if (confirm("Close Window?")) {
    close();
  }
}

HTML:

<a href="javascript:close_window();">close</a>

或者:

<a href="#" onclick="close_window();return false;">close</a>

我们return false在此处添加以防止事件的默认行为。否则浏览器将尝试访问该 URL。

有关 Firefox,请参阅本文


推荐阅读