是否有方法可以像在 Firefox 中一样使用 google chrome 扩展注册自定义协议:
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:...
.
-
Use the webRequest
用于拦截来自默认搜索提供程序的所有请求并将其重定向到自定义 URL 的 API。我使用此方法来捕获通配符搜索关键字,但它也可用于支持虚假方案。不幸的是,该扩展程序将非常特定于用户的搜索设置,因为它会执行如下操作:
Redirect http://google.com/search?q=xyz%3Awhatever
to chrome-extension://.../whatever
在这两种情况下,你都不会看到xyz:whatever
在多功能框中, 尽管。
navigator.registerProtocolHandler应该是最好的注册方式xyz:
处理程序。不幸的是,目前它非常有限。自定义协议必须带有前缀web+
。另请查看未解决的错误列表对于这个API。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)