如何使用 tampermonkey 将特定的 onclick 弹出窗口 link 转换为直接 link href?
How to convert a specific onclick popup link to direct link href with tampermonkey?
我正在尝试创建一个 tampermonkey 脚本来修改特定网页中的单个 link。我尝试了几乎所有的建议,但我新发现的 js 技能无处可去。
拿这个:
<p class="g2 gsp"><img src="https://ptt.org/t/ss.gif"> <a href="#" onclick="return popUp('https://somelink',480,320)">Maka Pato</a></p>
并转换为:
<p class="g2 gsp"><img src="https://ptt.org/t/ss.gif"> <a href="https://somelink">Maka Pato</a></p>
基本上,删除 onclick 弹出窗口并将 href 指向 #
的 link instad
我成功提取了“https://somelink”,但无法修改原始文件。
//function to extract the link
function xpathSelector(xpath) {
return document.evaluate(xpath, document.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE,
null).singleNodeValue;
};
//save the link
var mak = xpathSelector('.//a[text() = "Maka Pato"]');
var x = document.getElementsByClassName("g2 gsp")[0]
您可以使用 getAttribute
和 regular expression 提取值,然后使用 removeAttribute
删除它并设置 href
.
function xpathSelector(xpath) {
return document.evaluate(xpath, document.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE,
null).singleNodeValue
}
const mak = xpathSelector('.//a[text() = "Maka Pato"]')
const x = document.getElementsByClassName("g2 gsp")[0]
// parentheses create a capture inside the match
// index 0 is the full match, then indexes 1+ are each capture
const url = mak.getAttribute('onclick').match(/'(https?:\/\/\S+)'/)[1]
mak.removeAttribute('onclick')
mak.href = url
console.log(x.outerHTML)
<p class="g2 gsp"><img src="https://ptt.org/t/ss.gif"> <a href="#" onclick="return popUp('https://somelink',480,320)">Maka Pato</a></p>
我正在尝试创建一个 tampermonkey 脚本来修改特定网页中的单个 link。我尝试了几乎所有的建议,但我新发现的 js 技能无处可去。 拿这个:
<p class="g2 gsp"><img src="https://ptt.org/t/ss.gif"> <a href="#" onclick="return popUp('https://somelink',480,320)">Maka Pato</a></p>
并转换为:
<p class="g2 gsp"><img src="https://ptt.org/t/ss.gif"> <a href="https://somelink">Maka Pato</a></p>
基本上,删除 onclick 弹出窗口并将 href 指向 #
的 link instad我成功提取了“https://somelink”,但无法修改原始文件。
//function to extract the link
function xpathSelector(xpath) {
return document.evaluate(xpath, document.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE,
null).singleNodeValue;
};
//save the link
var mak = xpathSelector('.//a[text() = "Maka Pato"]');
var x = document.getElementsByClassName("g2 gsp")[0]
您可以使用 getAttribute
和 regular expression 提取值,然后使用 removeAttribute
删除它并设置 href
.
function xpathSelector(xpath) {
return document.evaluate(xpath, document.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE,
null).singleNodeValue
}
const mak = xpathSelector('.//a[text() = "Maka Pato"]')
const x = document.getElementsByClassName("g2 gsp")[0]
// parentheses create a capture inside the match
// index 0 is the full match, then indexes 1+ are each capture
const url = mak.getAttribute('onclick').match(/'(https?:\/\/\S+)'/)[1]
mak.removeAttribute('onclick')
mak.href = url
console.log(x.outerHTML)
<p class="g2 gsp"><img src="https://ptt.org/t/ss.gif"> <a href="#" onclick="return popUp('https://somelink',480,320)">Maka Pato</a></p>