代码之家  ›  专栏  ›  技术社区  ›  Jedi the padavann

google chrome扩展计时器重置

  •  1
  • Jedi the padavann  · 技术社区  · 8 年前

    我想构建一个Google Chrome扩展,用于检查鼠标移动。

    如果鼠标直到5分钟才移动(在代码中,我设置了0.1和0.2,因为我不希望在测试时间内总是等待很多次),那么扩展将打开其他站点(代码只显示一个警报框)。

    我的问题是,如果鼠标移动,我无法重新设置警报。一切正常,只是我可以重新启动或重新设置我创建的警报。

    我知道我做错了什么。

    这是我第一次尝试Google Chrome扩展,但直到现在我还是用php、vb编程。net、html、vbscript。

    但这一警报被重新设置,不想在谷歌Chrome版本下工作。63。(即使我也在旧版本中尝试,也在chromium下尝试,但它不起作用)。

    感谢您的支持^^

    代码从这里开始:

    显示。JSON

    {
      "name": "Chrome-extension",
      "version": "1.0",
      "manifest_version": 2,
    
      "permissions": [
         "alarms"   
       ],
      "background": {
      "scripts": ["background.js"]
      },
      "content_scripts": [
          {
            "matches": ["http://www.google.hu/*"],
            "js": ["jquery1.7.2.js", "detectclicks.js"]
          }
       ],
      "description": "Chrome-extension",
      "browser_action": {
          "default_icon": "icon.png"
          "default_popup": "popup.html"
         } 
       }
    

    检测碰撞。JS公司 (当鼠标移动时,它会重新设置报警。删除并重新创建)

    $('html').on('mousemove', '*',function(event) {
        chrome.alarms.clearAll();
        chrome.alarms.create("myAlarm", {delayInMinutes: 0.1, 
        periodInMinutes: 0.2});
        alert("OK");
    });
    

    背景。JS公司 (如果警报正在启动,显示一条短消息-只是因为检查)

    chrome.alarms.onAlarm.addListener(function(alarm) {
        alert("Beep");
    });
    

    弹出窗口。JS公司 (打开和关闭带有启动和停止警报的扩展)

    var alarmClock = {
    
        onHandler : function(e) {
            chrome.alarms.create("myAlarm", {
                delayInMinutes: 0.1, 
                periodInMinutes: 0.2
            });
            window.close();
        },
    
        offHandler : function(e) {
            chrome.alarms.clear("myAlarm");
            window.close();
        },
    
        setup: function() {
            var a = document.getElementById('alarmOn');
            a.addEventListener('click', alarmClock.onHandler);
            var a = document.getElementById('alarmOff');
            a.addEventListener('click', alarmClock.offHandler);
        }
    };
    
    document.addEventListener('DOMContentLoaded', function() {
        alarmClock.setup();
    });
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Andrei Sergeev    8 年前

    在prod中,您不能设置报警<1分钟,在新版chrome中,您无法在开发人员模式下设置此警报。

    为了减少用户机器上的负载,Chrome将警报限制为最多每1分钟一次,但可能会延迟任意时间。也就是说,将delayInMinutes或periodInMinutes设置为小于1将不受欢迎,并将导致警告。可以在“现在”后将时间设置为1分钟以内,而不发出警告,但实际上不会导致至少1分钟内发出警报。

    chrome.alarms