// ==UserScript== // @name DirectLink🐘! // @namespace editit // @version 0.3.0 // @description 在长毛象站点中直达ActivityHub链接 // @author editit // @match *://o3o.ca/* // @match *://m.cmx.im/* // @license MIT // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; // https://stackoverflow.com/a/47409362 const inputTypes = [window.HTMLInputElement, window.HTMLSelectElement, window.HTMLTextAreaElement] const triggerInputChange = (node, value = "") => { // only process the change on elements we know have a value setter in their constructor if (inputTypes.indexOf(node.__proto__.constructor) > -1) { const setValue = Object.getOwnPropertyDescriptor(node.__proto__, "value").set const event = new Event("input", { bubbles: true }) setValue.call(node, value) node.dispatchEvent(event) } } const kp = new KeyboardEvent("keyup", { bubbles: true, cancelable: true, keyCode: 13, }) // https://stackoverflow.com/a/34896387 document.addEventListener("click", function (e) { const target = e.target.closest("a.status-link.unhandled-link") // Or any other selector. if (target) { let h = target.href if (h.match(/^.*?\/\/[^\/]+\/((@[^\/]+)|(notes))\//) || h.match(/^.*?:\/\/bird\.makeup\/user\.*/)) { e.preventDefault() console.log(h) triggerInputChange(document.querySelector("input.search__input"), h) document.querySelector("input.search__input").dispatchEvent(kp) return false } else { } } }) })();