在我阅读了Hover Zoom being evil(喜欢!)之后,有两篇文章使我立即切换到另一篇名为Imagus的文章:
Imagus似乎通过执行Hover Zoom也可以做的事情来满足要求,但除此之外,它似乎已经支持了自定义过滤器(以支持更多站点),此外还支持大量的自定义过滤器。
在Chrome浏览器的选项页上,过滤器部分看起来很容易被黑客入侵:
但是,与此同时,它似乎是用所谓的 Perl Javascript 编写的。
我认为自己精通Javascript,DOM和Regex,但是尝试猜测这样做的确很痛苦,因此我寻找了文档。好像有一个MyOpera blog,现在website of the project暂时托管在Google文档上。
该页面未提及有关如何开发“过滤器”(或该页面中写的“筛子”的内容)的任何内容。
那么,如何开发自定义过滤器? 我不知道所有可能的方法(它似乎很灵活),但是即使是一个简单的示例(如仅修改URL)也可以。 (将
/thumb/123.jpg
转换为/large/123.jpg
或其他内容)。甚至只是对字段的解释。他们似乎是:
link
url
res
img
to
note
最佳答案
这些域可以包含JavaScript函数或正则表达式。
如果其中之一为空,则跳过该步骤,例如没有url和res只是从链接的输出中加载的。
一个简单的例子是xkcd过滤器:
链接:
^(xkcd\.(?:org|com)/\d{1,5})/?$
查找指向xkcd漫画的链接。如果您不熟悉正则表达式,则括号之间的所有内容都会保存,并且可以在Imagus中用作“$ n”来表示第n个捕获。请注意,如果第一个括号后面有一个“?:”,它将不会被捕获。
网址:
$1/info.0.json
这只是将“/info.0.json”附加到链接的地址中。
资源:
:
if ($._[0] != '{') $ = null;
else $ = JSON.parse($._), $ = [$.img, [$.year, ('0'+$.month).slice(-2),
('0'+$.day).slice(-2)].join('-') + ' | ' + $.safe_title + ' - ' + $.alt + ' ' +
$.link];
return $;
此javascript函数解析JSON文件并返回一个数组,其中第一个元素是链接,第二个元素是显示在悬停缩放的图像下方的标题文本。
如果仅返回链接,则标题将是链接的替代文本。
一个简单的用例是当您想从缩略图重定向到录用者时。
就像wikimapia.org的过滤器一样。
img:
^(photos\.wikimapia\.org/p/[^_]+_(?!big))[^.]+
这会找到名称中没有大的wikimapia图像。
更改为:
$1big
向网址添加大。
一些过滤器在此处具有指向API文档的链接。
现在,该功能还没有文档,所以我可能错过了很多,但希望它足够了。
干杯。
关于javascript - 如何为Imagus悬停缩放扩展开发自定义滤镜?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24045756/