在哪里调用navigator.registerProtocolHandler?

Voy*_*Voy 7 javascript google-chrome custom-protocol

我如何以及在何处使用navigator.registerProtocolHandler使其工作?

.

本主题建议您可以调用以下函数来添加自定义协议处理程序:

navigator.registerProtocolHandler('web+custom', 'http://example.com/rph?q=%s', 'My App');
Run Code Online (Sandbox Code Playgroud)

当我从控制台调用它时,我得到了

Uncaught DOMException: Failed to execute 'registerProtocolHandler' on 'Navigator': 
Can only register custom handler in the document's origin.
Run Code Online (Sandbox Code Playgroud)

如果我将其作为此处建议的内容脚本的一部分包含在内,也会发生这种情况

install_protocol.html

<head>
  <title>Web Protocol Handler Sample - Register</title>
  <script type="text/javascript">
    navigator.registerProtocolHandler("burger",
                              "http://www.google.co.uk/?uri=%s",
                              "Burger handler");
  </script>
</head>
Run Code Online (Sandbox Code Playgroud)

我也尝试在我的background.js脚本中调用它,它没有给出错误,但协议似乎没有响应.

.

你能解释一下如何在Chrome中注册和使用自定义协议吗?

Kub*_*tek 8

如果你想用URL注册处理程序,http://www.google.co.uk…那么你的脚本(那个调用的那个navigator.registerProtocolHanlder)必须从同一个域加载,即www.google.co.uk.