Как закрыть текущую вкладку с помощью javascript в chrome без использования window.close ()? - PullRequest
0 голосов
/ 18 июня 2020

Я хочу создать веб-страницу, которая будет использоваться для проведения онлайн-экзамена, поэтому, если пользователь переключается на другие вкладки, экзамен должен быть завершен после первого просмотра, а текущая вкладка должна быть закрыта.

Я уже использовал API видимости страниц в Javascript, чтобы определить количество просмотров, которые пользователь переключает на другие 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();
    }
  }

Есть предложения?

Ответы [ 3 ]

0 голосов
/ 18 июня 2020
var Activetab;

window.onfocus = function () { 
 Activetab = true; 
}; 

window.onblur = function () { 
 Activetab = false; 
}; 

// check periodically 
setInterval(function () { 
  console.log(window.Activetab ? 'active' : 'inactive'); 
 }, 2000);

это может помочь вам определить, когда пользователь меняет вкладки, это работает нормально и ссылается на здесь ОБНОВЛЕНО

var Activetab;

window.onfocus = function () { 
 Activetab = true; 
}; 

window.onblur = function () { 
 Activetab = false; 
 // window.close();
 open("yourpathoffile/filename.ext", '_self').close(); // or you can 
try directly window.close
}; 

// check periodically 
setInterval(function () { 
  console.log(window.Activetab ? 'active' : 'inactive'); 
 }, 2000);
0 голосов
/ 18 июня 2020

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, чтобы предотвратить поведение события по умолчанию. В противном случае браузер попытается ввести go по этому URL-адресу.

Обратитесь к этой статье для Firefox.

0 голосов
/ 18 июня 2020

Чтобы закрыть конкретную вкладку, вы можете реализовать такую ​​функцию, как:

(function() {
    'use strict';
    $("#close_page").click(function() {
        var confirm_result = confirm("Are you sure you want to quit?");
        if (confirm_result == true) {
            window.close();
        }
    });
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...