您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add a contextmenu command to copy URL with '#' anchor
当前为
- // ==UserScript==
- // @name Copy URL with Hash
- // @version 0.1.0
- // @description Add a contextmenu command to copy URL with '#' anchor
- // @license MIT
- // @author eight04 <eight04@gmail.com>
- // @homepageURL https://github.com/eight04/copy-url-with-hash
- // @supportURL https://github.com/eight04/copy-url-with-hash/issues
- // @incompatible chrome
- // @incompatible opera
- // @incompatible safari
- // @include *
- // @require https://greasyfork.org/scripts/33034-gm-context/code/GM_context.js?version=219427
- // @grant none
- // @namespace https://greasyfork.org/users/813
- // ==/UserScript==
- /* global GM_context */
- (function(){
- let hash;
- const item = {
- label: "Copy URL with #hash",
- onclick() {
- const url = new URL(location.href);
- url.hash = hash;
- const input = document.createElement("input");
- input.value = url.href;
- document.body.appendChild(input);
- input.select();
- document.execCommand("copy");
- input.remove();
- }
- };
- GM_context.add({
- context: ["page"],
- items: [item],
- oncontext(e) {
- hash = findHash(e.target);
- if (!hash) return false;
- GM_context.update(item, {label: `Copy URL with #${hash}`});
- }
- });
- function findHash(node) {
- if (node.id || node.name) {
- return node.id || node.name;
- }
- const anchor = node.querySelector("[id], a[name]");
- if (anchor) {
- return anchor.id || anchor.name;
- }
- const head = node.closest("h1, h2, h3, h4, h5, h6");
- if (head) {
- const anchor = head.querySelector("[id], a[name]");
- if (anchor) {
- return anchor.id || anchor.name;
- }
- }
- }
- })();