Copy current url

Copy current website url by pressing yy

当前为 2025-01-05 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Copy current url
// @namespace    https://greasyfork.org/en/users/901750-gooseob
// @version      1.0.4
// @description  Copy current website url by pressing yy
// @author       GooseOb
// @license      MIT
// @match        *://*/*
// ==/UserScript==

(function () {
  const isInput = (element) => {
    const tagName = element.tagName.toLowerCase();
    return (
      tagName === "input" || tagName === "textarea" || element.isContentEditable
    );
  };

  const listenForDoublePress = (check, action) => {
    let timeout = 0;
    document.addEventListener("keyup", (e) => {
      if (check(e)) {
        if (timeout) {
          action();
          clearTimeout(timeout);
          timeout = 0;
        } else {
          timeout = setTimeout(() => {
            timeout = 0;
          }, 1000);
        }
      }
    });
  };

  listenForDoublePress(
    (e) => e.key === "y" && !isInput(e.target),
    () => navigator.clipboard.writeText(window.location.href),
  );
})();