在我阅读了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-LifeHacker

  • 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使用链接字段中捕获的括号值来生成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文件并返回一个数组,其中第一个元素是链接,第二个元素是显示在悬停缩放的图像下方的标题文本。
    如果仅返回链接,则标题将是链接的替代文本。
  • img用作链接,但是对于图像源
  • to用作res或url为

  • 一个简单的用例是当您想从缩略图重定向到录用者时。
    就像wikimapia.org的过滤器一样。
    img:
    ^(photos\.wikimapia\.org/p/[^_]+_(?!big))[^.]+
    

    这会找到名称中没有大的wikimapia图像。
    更改为:
    $1big
    

    向网址添加大。
  • note仅用于注释。

  • 一些过滤器在此处具有指向API文档的链接。

    现在,该功能还没有文档,所以我可能错过了很多,但希望它足够了。

    干杯。

    关于javascript - 如何为Imagus悬停缩放扩展开发自定义滤镜?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24045756/

    10-09 21:58