【问题标题】:Using Greasemonkey/Tampermonkey to replace a div object for an anchor object使用 Greasemonkey/Tampermonkey 将 div 对象替换为锚对象
【发布时间】:2021-09-14 17:24:27
【问题描述】:
某些网站,例如 Canon (https://www.usa.canon.com/internet/portal/us/home/about/newsroom/press-releases) 的超链接被缩短并嵌入到 div 对象中,从而阻止您右键单击和“打开新标签”。我意识到我可以通过将 div 元素更改为锚对象来阻止它。
具体来说,如果我替换:
<div style ="cursor:pointer;" on click="window.location.href='/internet
与
<a href = 'https://www.usa.canon.com/internet
html 会自行更正,我现在可以正确打开链接。通过一些研究,我遇到了 Tampermonkey,我花了 4 个小时的大部分时间尝试编写 1-2 行代码,我需要让它为网页上的所有实例自动完成。谁能指出我的快速资源来解决这个问题?
谢谢!
【问题讨论】:
标签:
javascript
html
greasemonkey
tampermonkey
userscripts
【解决方案1】:
这是一个基于您可以处理的上述页面的基本示例:
// ==UserScript==
// @name Div to Anchor
// @match https://www.usa.canon.com/internet/portal/us/home/about/newsroom/press-releases
// ==/UserScript==
// --- template
const temp = document.createElement('a');
temp.target = '_blank'; // open in a new tab
document.querySelectorAll('div[onclick^="window.location.href="]').forEach(item => {
const a = temp.cloneNode();
a.href = item.getAttribute('onclick').slice(22, -2);
a.textContent = item.textContent;
item.replaceWith(a);
});