• 主页
  • 在Chrome上使用Tampermonkey的按键手势

在Chrome上使用Tampermonkey的按键手势

我正在编写一个篡改猴子的用户脚本,以替换在Quantum Firefox之前的FireGestures中已经存在的一个功能。能够打开所有悬停在新的背景选项卡中的链接。所以有一个组合键,在FG中是Ctrl +右键单击,并在每个你想打开的链接上绘制一个手势轨迹。到目前为止,我所写的一切都是别人为我写的,所以我并不是想要获得荣誉,我已经超出了我的能力范围。我不知道如何编辑和修复所需的内容。这就是我到目前为止所拥有的。

(function(delay, t, lnk, clicked) {

  //config: delay before click. mouse movement will reset the delay timer.
  delay = 1000; //in milliseconds. 1sec = 1000ms

  t = 0;

  function mousemove() {
    clearTimeout(t);
    if (lnk) t = setTimeout(clickLink, delay);
  }

  function clickLink() {
    removeEventListener("mousemove", mousemove);
    clearTimeout(t);
    if (lnk) {
      lnk.target = "_blank";
        lnk.click();
        lnk.target = "";
      clicked = true;
    }
  }

  addEventListener("mouseover", function(ev, el, el2) {
    el = ev.target;
    removeEventListener("mousemove", mousemove);
    clearTimeout(t);
    while (el) {
      if (el.tagName === "A") {
        el2 = el;
        if (el !== lnk) {
          lnk = el;
          clicked = false;
          addEventListener("mousemove", mousemove);
          clearTimeout(t);
          t = setTimeout(clickLink, delay);
        }
        return;
      }

      el = el.parentNode;
    }
    if (!el2) {
      lnk = null;
      clicked = false;
      removeEventListener("mousemove", mousemove);
      clearTimeout(t);
    }
  });

})();

我面临着几个问题。1.这不需要任何类型的按钮组合。它将持续处于活动状态,并将单击悬停在指定时间长度上的任何链接。我更希望它只在按下按钮组合时才起作用,理想情况下是Ctrl + Rightclick。我发现了一个处理组合键的线程,但不知道如何编辑它并将其插入到现有脚本中以满足我的需要。

document.addEventListener ("keydown", function (zEvent) {
    if (zEvent.ctrlKey  &&  zEvent.altKey  &&  zEvent.code === "KeyE") {
        // DO YOUR STUFF HERE
    }
} );

chrome中的弹出窗口拦截器实际上阻止了这些标签的打开。除了关闭弹出窗口拦截程序之外,我不知道是否有任何方法可以解决这个问题,但如果有的话,我会非常感谢3.这个脚本在前台而不是后台打开选项卡。因此,在一个页面上打开一堆链接是不可能的,因为一旦单击第一个链接,它就会导航到新的选项卡。我最初解决这个问题的想法是让脚本在它经过的每个链接上执行鼠标中键操作,但我甚至不知道这是否可行或实用。我知道我的要求太多了,但我只是希望知道他们在做什么的人能通过编辑我已有的东西或自己写出一些东西来帮助我。我很感谢你提供的帮助。

转载请注明出处:http://www.jxbyjx.net/article/20230503/1485621.html