以下代码假设在外部应用程序中打开URL:
var a = document.createElement('a');
a.href = 'myprotocol:jdoe@example.com;fromuser=John%20Doe;mode=audiovideo';
document.body.appendChild(a);
a.click();
Run Code Online (Sandbox Code Playgroud)
如果未安装该应用,则在某些PC上Chrome会无声地失败,而在其他PC上则会显示此窗口:
这种行为在哪里定义?
如果你想注册你的应用程序来处理 Windows 中的特定 URI 架构,那么你应该在注册表中注册它。MSDN 文章对此进行了解释,谷歌搜索“将应用程序注册到 URI 方案”给出了大量示例。
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
Run Code Online (Sandbox Code Playgroud)
您可以使用 Google Chrome 注册自定义协议处理程序navigator.registerProtocolHandler(Firefox 也具有该功能)。
navigator.registerProtocolHandler(
'web+mystuff', 'http://example.com/rph?q=%s', 'My App');
Run Code Online (Sandbox Code Playgroud)
请注意,您的协议必须以 开头web+。否则你会得到SECURITY_ERR: DOM Exception 18错误。
或者,如果您正在开发 Chrome 应用程序,则可以在清单文件中注册处理程序。
"url_handlers": {
"view_foo_presentation": {
"matches": [
"https://www.foo.com/presentation/view/*"
],
"title": "View Foo presentation"
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以查看 Chrome URL ( chrome://chrome-urls/),看看是否可以在任何设置中更改它。
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |