Chrome扩展程序

时间:2018-08-01 06:51:50

标签: javascript google-chrome-extension settimeout ontouchlistener chromebook

我创建了chrome扩展程序。我的代码在Windows / Mac / Chromebook(V8)中运行良好,但是在3分钟后用户试图点击/捕获徽标时,Chromebase无法运行,它没有在首页上重定向。我已将超时设置为3分钟,并且它在所有系统上都能正常工作,而不是Chrombase touch事件。

奇怪的是,它只是第一次工作。

我的代码如下,来自重置超时和DOM元素:

    var t;  
    onload = function() {
      var webview = document.querySelector('webview');
      window.onload = resetTimer;
      // DOM Events
      document.onclick = resetTimer;
      document.onmousemove = resetTimer;
      document.onkeypress = resetTimer;
     };



    function resetTimer() {
    clearTimeout(t);
    t = setTimeout(goHome, 180000);
    // 1000 milisec = 1 sec
    }

    function goHome() {
     navigateTo('http://MyURL.com/homepage/');
    }  


  function navigateTo(url) {
    document.querySelector('webview').src = url;
    }

此外,我还在Google上搜索了诸如touchstart,touchmove之类的触摸事件,但似乎也无法正常工作。

有什么问题?请帮助

1 个答案:

答案 0 :(得分:0)

请使用Chrome.alarms而不是settimeout。

您的代码应替换为以下代码。

var t;  
onload = function() {
  var webview = document.querySelector('webview');
  window.onload = resetTimer;
  // DOM Events
  document.onclick = resetTimer;
  document.onmousemove = resetTimer;
  document.onkeypress = resetTimer;

  document.ontouchstart = resetTimer;
  document.ontouchmove = resetTimer;
  document.ontouchend = resetTimer;   
 };

 function resetTimer() {

    chrome.alarms.clear("logoutTimer", function() {     });
    chrome.alarms.create("logoutTimer", {periodInMinutes:1});
   }


 chrome.alarms.onAlarm.addListener(function(alarm){

   navigateTo('http://dev.innovicloud.com/CHROMEAPP/');
 });



function navigateTo(url) {
  document.querySelector('webview').src = url;
 }