在我读到 Hover Zoom being evil 之后(哎呀!),有两篇文章让我立即切换到另一篇文章,名为 Imagus:
- Hoverzoom’s Malware controversy, and Imagus alternative - ghacks.net
- Imagus is a Hover Zoom Replacement to Enlarge Images on Mouseover - 生活黑客
Imagus 似乎通过做 Hover Zoom 也能做的几乎所有事情来满足要求,但除此之外,它似乎还支持自定义过滤器(以支持更多站点),此外还有它已经包含的大量内容。
在 Chrome 的选项页面中,过滤器部分看起来非常容易破解:
然而,与此同时,它似乎是用我称之为 Perl Javascript 的方式编写的.
我认为自己精通 Javascript、DOM 和 Regex,但很难猜测它们在做什么,所以我查找了文档。好像有一个 MyOpera blog ,现在是 website of the project目前,托管在 Google 文档上。
该页面没有提及任何关于如何开发“过滤器”(或“筛子”,如该页面所写?)
那么,我如何开发自定义过滤器?我不知道所有的可能性(它似乎非常灵活),但即使是像修改 URL 这样的简单示例也不错. (将 /thumb/123.jpg
变成 /large/123.jpg
或其他东西)。
或者甚至只是对字段的解释。他们似乎是:
链接
url
资源
img
到
note
<- 可能评论
最佳答案
字段可以包含 JavaScript 函数或正则表达式。
- link 接收您将鼠标悬停在其上的任何链接的地址。
- url 使用链接字段中捕获的括号值来制作 url。
- res 以文本形式接收 url 或链接指向的任何页面。
如果其中一个为空,则跳过该步骤,例如没有 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 文件并返回一个数组,其中第一个元素是链接,第二个元素是显示在 hoverzoomed 图像下的标题文本。 如果您只返回一个链接,那么标题将是链接的替代文本。
- img 用作链接,但用于图像源
- to 用作 res 或 url 是
一个简单的用例是当您想要从缩略图重定向到雇员时。
就像 wikimapia.org 的过滤器。
img:
^(photos\.wikimapia\.org/p/[^_]+_(?!big))[^.]+
这会找到名称中没有 big 的任何 wikimapia 图像。
到:
$1big
在 url 中添加 big。
- note 仅用于笔记。
某些过滤器在此处具有指向 API 文档的链接。
现在,还没有关于此功能的文档,所以我可能错过了很多,但希望这就足够了。
干杯。
关于javascript - 如何为 Imagus 悬停缩放扩展开发自定义过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24045756/