我正在寻找创建一个Greasemonkey脚本,它将取代InoReader或任何其他RSS阅读器中的Facebook缩略图。以前我在Google阅读器中成功使用了以下脚本,但它在InoReader,Feedly或任何非Google RSS阅读器中都不起作用。
// ==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');
});
非常感谢任何帮助。
答案 0 :(得分:1)
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
更改/正则表达式,请参阅代码。
以下是如何在该阅读器上替换该Feed的图像:
// ==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;
}