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

 书友31443126_163 发布于 2023-02-07 15:30

是否有方法可以像在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://

这可能吗?

1 个回答
  • Chrome没有提供为该xyz:方案设置自定义处理程序的方法。

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

    使用内容脚本为指向的链接的点击设置事件监听器xyz:...

    使用webRequestAPI拦截所有请求并将其从默认搜索提供程序重定向到自定义URL。我正在使用这种方法来捕获通配符搜索关键字,但是它也可以用于支持伪造方案。不幸的是,该扩展名非常特定于用户的搜索设置,因为它会执行以下操作:

    Redirect http://google.com/search?q=xyz%3Awhatever
          to chrome-extension://.../whatever
    

    在这两种情况下,您都不会xyz:whatever在多功能框中看到

    navigator.registerProtocolHandler应该是注册xyz:处理程序的最佳方法。不幸的是,目前它是非常有限的。自定义协议必须以开头web+。还请查看此API 的未解决错误列表。

    2023-02-07 15:34 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有