Opera 实验性桌面版带来新扩展 API: 截图、加载本地文件、更新内容拦截

昨晚 Opera 发布了一个实验性桌面版本,带来新的扩展 API:

  • 用于对网页进行截图的 Screenshot API
  • 使扩展易于加载本地资源的 Resource Loader API
  • 更新 URL Filter API

在这些实验性功能最终定型前,请尽量向 Opera 反馈相关问题和建议。

这些特性不会出现在 Opera 12 正式版中,而是在更晚的版本。

下载链接

Screenshot API

你可以在扩展中的注入式或背景脚本中调用 getScreenshot() 以使用 screenshot API 对网页进行截图。截图后可以在 <canvas> 中操作它或者储存在某处留待他用。

深入阅读:

Resource Loader API

扩展安全模型使扩展连包含在同一扩展包内的本地文件也不能加载,为了克服这个问题,就有了 resource loader API。resource loader API 的 getfile() 方法可用于获取文件内容,然后使用 W3C File API 读取这些内容。这招相当有用,你可以在扩展中加入不同的内容、图像甚至脚本和样式。

深入阅读:

URL Filter API

URL Filter API 允许你在 Opera 原生内容拦截功能的被拦截 URL 列表中新增或移除 URL。通过此 API 进行的这些更改是临时性的,只有浏览器会话处于活动并启用了相关扩展时有效。

此 API 自 Opera 11.10 起已经可以使用,现在此实验性版本对它加入了新特性:

  • 支持白名单 — 作为被拦截(黑名单)URL 的例外列表。基本语法:opera.extension.urlfilter.allow.add(pattern, options)
  • 仅限特定域名: block.add(pattern, {includeDomains: ["google.com", "google.co.uk", "google.com.au"])
  • 排除特定域名: block.add(pattern, {excludeDomains: ["google.com", "google.co.uk", "google.com.au"])
  • 允许在 URL 被拦截或允许(出现在白名单中)时触发事件。目前 Opera 不打算在没有任何匹配时也能触发事件,因为有拖累性能的可能。
  • 拦截第三方 URL(例如,仅当 facebook.com 被其他网站访问时拦截它): block.add(pattern, {thirdParty: true})
  • 根据资源类型进行拦截(脚本、图像、样式表等等.): block.add(pattern, {resources: urlfilter.RESOURCE_SCRIPT | urlfilter.RESOURCE_STYLESHEET)
  • 新 filter 语法:
    • 分隔通配符:^。例如,example.com^foo 会匹配 example.com/fooexample.com?foo
    • 域名匹配语法:||。例如,||example.com 会匹配所有域名为 example.com 的 URL。
  • (以上两条)新语法也可以用于 urlfilter.ini 文件。

深入阅读:

[ Via Dev.OperaOpera.IM 编译 ]