我正在寻找一个Greasemonkey脚本,它将替换InoReader或任何其他RSS阅读器中的Facebook缩略图。以前,我已经在Google Reader中成功使用了以下脚本,但是在InoReader,Feedly或任何非Google RSS Reader中均无法使用。
// ==UserScript==
// @id greader-facebookurlreplacer
// @name Google Reader - Facebook URL Replacer
// @version 1.1
// @namespace
// @author
// @description
// @include https://www.google.com/reader/*
// @include https://www.feedspot.com/*
// ==/UserScript==
document.getElementById("chrome").addEventListener("DOMNodeInserted", function (e) {
if (e.target.tagName && e.target.tagName == "DIV" && /entry\s?/.test(e.target.className)) {
var t = e.target.getElementsByTagName("img");
for (var n in t) {
var r = t[n];
if (/.*akamaihd\.net.*_s\.\w+$/.test(r.src)) {
r.style.width = r.style.height = "inherit";
r.src = r.src.replace(/_s\.(\w+)$/, "_n.$1")
}
}
}
}, false)
我还尝试使用从类似的stackoverflow帖子中检索到的以下代码,但在InoReader中也不起作用。
$("img[src^='https://fbcdn-photos-a.akamaihd.net']")
.each(function()
{
this.src = this.src.replace(/(\/[^/]*)s\.jpg$/, '/s720x720$1n.jpg');
});
任何帮助将不胜感激。
最佳答案
DOMNodeInserted
is deprecated.不再使用该方法。最好使用waitForKeyElements之类的实用程序。
之后,只需找到正确的图像jQuery selector,然后使用正确的正则表达式将src
转换为较大图像尺寸的正则表达式即可。 (但请注意,某些站点故意使正则表达式无法实现。)
对于the sample RSS feed you listed,在inoreader.com上,我们可以use Firebug to determine a CSS/jQuery path到以下缩略图:
#reader_pane div.article_full_contents div.article_content a.underlink img
有关
src
更改/正则表达式,请参见代码。这是在该阅读器上替换该供稿的图像的方法:
// ==UserScript==
// @name _InoReader thumbnail replacer
// @include http://www.inoreader.com/*
// @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==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/
waitForKeyElements (
"#reader_pane div.article_full_contents div.article_content a.underlink img",
swapOutFbcdnThumnails
);
function swapOutFbcdnThumnails (jNode) {
/*-- Change src from:
https://fbcdn-photos- ... _s.jpg
to:
https://fbcdn-sphotos- ... _n.jpg
*/
var newSrc = jNode[0].src.replace (/fbcdn\-photos\-/, "fbcdn-sphotos-");
newSrc = newSrc.replace (/_s\.jpg$/, "_n.jpg");
jNode[0].src = newSrc;
}