Wit*_*lds 2 html javascript firefox greasemonkey hyperlink
我是 Greasemonkey 的新手,我想用标签替换图像链接<img>。
例如,这个论坛页面有很多链接,例如:
<a target="_blank" href="http://url.com/pic.gif">http://url.com/pic.gif</a>
Run Code Online (Sandbox Code Playgroud)
我想用以下图像替换这些链接:
<img src="http://url.com/pic.gif">
Run Code Online (Sandbox Code Playgroud)
我在网上搜索并设法找到了类似Greasemonkey 用户组的内容。
但是,我编辑的代码:
var i, x = document.evaluate (
'//*[@target="_blank"][@href="="]',
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null
);
for (i = 0; i < x.snapshotLength; i++)
x.snapshotItem(i).setAttribute("href", "img src");
Run Code Online (Sandbox Code Playgroud)
似乎不起作用。
请告知我应该如何创建这个脚本。
替换图像链接并不难。但是,我建议您保留链接但在其中显示图片。这样,如果出现问题,您可以点击查看。例如,您提供的示例页面的大部分链接图像都位于失效站点上。
其他链接的图像看起来只是指向图像,或者可能因“热链接”而被阻止。
为了使代码健壮且简单,我们使用jQuery和waitForKeyElements。
这是一个完整的工作脚本,用于解除该示例站点上的有效负载图像链接:
// ==UserScript==
// @name _Image delinker
// @include http://forums.hardwarezone.com.sg/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==
var imageExtensions = ["gif", "png", "jpg", "jpeg"];
var imgExtRegex = new RegExp(
'\\.(' + imageExtensions.join ('|') + ')$', 'i'
);
/*-- Tune the CSS path, for each site, to only find links that can be
the image links you care about.
*/
//-- For forums.hardwarezone.com.sg
waitForKeyElements ("td.page div > a", delinkImage);
function delinkImage (jNode) {
var imgUrl = jNode.attr ("href");
if (imgExtRegex.test (imgUrl) ) {
//-- Found an image link. Replace contents.
jNode.html (
'<img src="' + imgUrl
+ '" class="gmDeLinked" alt="GM replaced image">'
);
}
}
GM_addStyle ( " \
img.gmDeLinked { \
border: 1px solid lime; \
max-width: 90vw; \
} \
" );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4622 次 |
| 最近记录: |