Navigator: unregisterProtocolHandler() 方法
语法
js
unregisterProtocolHandler(scheme, url)
参数
返回值
无 (undefined
).
异常
SecurityError
DOMException
-
用户代理阻止了注销。这可能会发生在以下情况下
- 方案(协议)无效,例如浏览器本身处理的方案(
https:
、about:
等) - 处理程序 URL 的 来源 与调用此 API 的页面的来源不匹配。
- 浏览器要求从安全上下文中调用此函数。
- 浏览器要求处理程序的 URL 必须是 HTTPS。
- 方案(协议)无效,例如浏览器本身处理的方案(
SyntaxError
DOMException
-
处理程序 URL 中缺少
%s
占位符。
允许的方案
出于安全原因,unregisterProtocolHandler()
限制了可以注销的方案。
只要满足以下条件,就可以注销自定义方案
- 自定义方案的名称以
web+
开头 - 自定义方案的名称在
web+
前缀之后至少包含 1 个字母 - 自定义方案的名称中只有小写 ASCII 字母。
例如,web+burger
,如下面的 示例 中所示。
否则,方案必须是以下方案之一
bitcoin
ftp
ftps
geo
im
irc
ircs
magnet
mailto
matrix
mms
news
nntp
openpgp4fpr
sftp
sip
sms
smsto
ssh
tel
urn
webcal
wtai
xmpp
示例
如果您的网站是 burgers.example.com
,并且您有 web+burger:
方案,您可以像这样注销它的处理程序
js
navigator.unregisterProtocolHandler(
"web+burger",
"https://burgers.example.com/?burger=%s",
);
此脚本必须从与处理程序 URL 相同的来源运行(因此是 https://burgers.example.com
上的任何页面),并且处理程序 URL 必须是 http
或 https
。
规范
规范 |
---|
HTML 标准 # dom-navigator-unregisterprotocolhandler-dev |
浏览器兼容性
BCD 表格仅在浏览器中加载