悬停复制的用户脚本
Userscript for hovercopy
下面是我的用户脚本,当鼠标悬停在 hyperlink 上并按 CTRL+C 时,它会将 HTML link 复制到剪贴板。当 <a>
是子级最多的元素时它工作正常,但我想让它获取悬停在其上的任何元素的文本并使用其最近的 <a>
父元素的 href。这是我现在拥有的代码:
// ==UserScript==
// @name Copy hyperlink using mouse hover + Ctrl + C
// @include *
// @grant GM_setClipboard
// ==/UserScript==
document.addEventListener('keydown', e => {
if (e.code === 'KeyC' && e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {
const a = document.querySelector('a:hover');
if (a) {
console.log(a)
var lnkURL = a.href;
var lnkText = a.text;
var myLnk = '';
myLnk = myLnk.concat("<a href='",lnkURL,"'>",lnkText,"</a>");
GM_setClipboard(myLnk, 'html');
}
}
})
下面是一个失败的例子:变量“lnkText”需要是“EI-261”。我如何修改脚本以获取正确的文本?
<a one-appnavbar="" href="/lightning/r/a064/view" draggable="false">
<span one-appnavbar="" class="slds-truncate">
<span one-appnavbar="">
EI-261
</span>
</span>
</a>
您可以拨打Element#closest()
获取:
// ==UserScript==
// @name Copy hyperlink using mouse hover + Ctrl + C
// @include *
// @grant GM_setClipboard
// ==/UserScript==
document.addEventListener('keydown', e => {
if (e.code === 'KeyC' && e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {
const hovered = document.querySelector('a:hover, a *:hover');
if (hovered) {
const a = hovered.closest('a');
console.log(a)
var lnkURL = a.href;
var lnkText = a.text;
var myLnk = '';
myLnk = myLnk.concat("<a href='",lnkURL,"'>",lnkText,"</a>");
GM_setClipboard(myLnk, 'html');
}
}
})
下面是我的用户脚本,当鼠标悬停在 hyperlink 上并按 CTRL+C 时,它会将 HTML link 复制到剪贴板。当 <a>
是子级最多的元素时它工作正常,但我想让它获取悬停在其上的任何元素的文本并使用其最近的 <a>
父元素的 href。这是我现在拥有的代码:
// ==UserScript==
// @name Copy hyperlink using mouse hover + Ctrl + C
// @include *
// @grant GM_setClipboard
// ==/UserScript==
document.addEventListener('keydown', e => {
if (e.code === 'KeyC' && e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {
const a = document.querySelector('a:hover');
if (a) {
console.log(a)
var lnkURL = a.href;
var lnkText = a.text;
var myLnk = '';
myLnk = myLnk.concat("<a href='",lnkURL,"'>",lnkText,"</a>");
GM_setClipboard(myLnk, 'html');
}
}
})
下面是一个失败的例子:变量“lnkText”需要是“EI-261”。我如何修改脚本以获取正确的文本?
<a one-appnavbar="" href="/lightning/r/a064/view" draggable="false">
<span one-appnavbar="" class="slds-truncate">
<span one-appnavbar="">
EI-261
</span>
</span>
</a>
您可以拨打Element#closest()
获取:
// ==UserScript==
// @name Copy hyperlink using mouse hover + Ctrl + C
// @include *
// @grant GM_setClipboard
// ==/UserScript==
document.addEventListener('keydown', e => {
if (e.code === 'KeyC' && e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {
const hovered = document.querySelector('a:hover, a *:hover');
if (hovered) {
const a = hovered.closest('a');
console.log(a)
var lnkURL = a.href;
var lnkText = a.text;
var myLnk = '';
myLnk = myLnk.concat("<a href='",lnkURL,"'>",lnkText,"</a>");
GM_setClipboard(myLnk, 'html');
}
}
})