gpt4 book ai didi

javascript - 使用grease/tampermonkey,我怎样才能在Thesaurus.com 上打开Dictionary.com 当前查看的定义?

转载 作者:行者123 更新时间:2023-12-03 04:51:30 24 4
gpt4 key购买 nike

使用 Greasemonkey 或 Tampermonkey,当 the links circled in red are clicked 时,如何在 Thesaurus.com 上打开当前在 Dictionary.com 上查看的定义(反之亦然) .

我发现我可以使用 window.location.pathname检索“/browse/test”或正在搜索的任何单词,然后我可以将其放在相反链接的主机名上。

Thesaurus.com 链接的 HTML:<a href="http://www.thesaurus.com/" data-linkid="qxnxzj">Thesaurus.com</a>

Dictionary.com 链接的 HTML:<a href="http://www.dictionary.com/" data-linkid="tqks0v">Dictionary.com</a>

所以我打算用 document.querySelectorAll("a[href='http://www.thesaurus.com']"); 选择它或document.querySelectorAll('[data-linkid=qxnxzj]');

我担心后一种选择方法,以防万一公司的网络开发人员更改了链接的数据。

但是,最终我仍然不确定如何实现这一点。我是否监听 document 上的所有点击,或者直接点击<a>标签等?最有效的方法是什么?

<小时/>

此外,如何在按住 Ctrl 键并单击时在新选项卡中打开这些链接,或者在按住 Shift 键并单击时在新窗口中打开这些链接?目前,它在同一浏览器选项卡中打开 ctrl+clicked 和 shift+clicked 链接。

最佳答案

以下代码能够完全实现我的问题中概述的所有目标:

// ==UserScript==
// @name Restore links behavior at Thesaurus.com
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match *://www.thesaurus.com/*
// @match *://www.dictionary.com/*
// @run-at document-end
// @grant none
// ==/UserScript==

(function() {
'use strict';

document.querySelectorAll('[data-linkid]').forEach(el => el.removeAttribute('data-linkid'));

document.addEventListener('click', function(e) {
var link = e.target.closest('a');
//var link = e.target.closest('#content a'); // limit to the #content area
var path = window.location.pathname; // /browse/myword

if (link && link.getAttribute('href') != '#') {
e.stopPropagation();
}

if (link && link.getAttribute('href') == 'http://www.thesaurus.com/') {
link.setAttribute('href', 'http://www.thesaurus.com' + path);
}
else if (link && link.getAttribute('href') == 'http://www.dictionary.com/') {
link.setAttribute('href', 'http://www.dictionary.com' + path);
}
}, true);

})();

关于javascript - 使用grease/tampermonkey,我怎样才能在Thesaurus.com 上打开Dictionary.com 当前查看的定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42637715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com