Chrome扩展程序:自定义协议?

是否有方法注册一个自定义协议与谷歌Chrome扩展,就像你可以在Firefox中:

const kSIMPLEURI_CONTRACTID = "@mozilla.org/network/simple-uri;1"; 
const kIOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1"; 
const nsISupports = Components.interfaces.nsISupports; 
const nsIIOService = Components.interfaces.nsIIOService; 
const nsIProtocolHandler = Components.interfaces.nsIProtocolHandler; 
const nsIURI = Components.interfaces.nsIURI; 

我想要协议:

XYZ:

不是xyz://

这可能吗?


Chrome不提供为xyz: scheme设置自定义处理程序的方法。

有一些方法可以模拟这些行为:

  • 使用内容脚本为点击指向xyz:...链接设置一个事件监听器xyz:...
  • 使用webRequest API拦截并将所有请求从默认搜索提供程序重定向到自定义URL。 我使用这种方法来捕获通配符搜索关键字,但它也可以用于支持伪造方案。 不幸的是,扩展名对于用户的搜索设置非常具体,因为它会做这样的事情:

    Redirect http://google.com/search?q=xyz%3Awhatever
          to chrome-extension://.../whatever
    
  • 在这两种情况下 ,尽管如此,你不会看到xyz:whatever在多功能框中

    navigator.registerProtocolHandler应该是注册xyz: handler的最佳方式。 不幸的是,目前它非常有限。 自定义协议必须以web+为前缀。 另请看看这个API的开放错误列表。

    链接地址: http://www.djcxy.com/p/61331.html

    上一篇: Chrome Extension : Custom Protocol?

    下一篇: "View As MIME Type" in Chrome or Firefox