我试图使用下面的代码来区分vSphere登录页面的URL和工作页面。如何在Chrome扩展中匹配URL和片段标识符?
的vSphere登录页面的URL看起来是这样的:
https://0.0.0.0/vsphere-client/?csp
与工作页面登录看起来像这样经过:
https://0.0.0.0/vsphere-client/?csp#extensionId%3Dvsphere.core.controlcenter.shortcutsView
所以,我想显示我的扩展图标在登录页面,不在工作页面显示。
我试着下面的代码,但它没有工作,我的意思是图标可以用以下两个网址:
chrome.runtime.onInstalled.addListener(function() {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([
{
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { querySuffix: 'csp' },
})
],
actions: [new chrome.declarativeContent.ShowPageAction()]
}
]);
});
});
对于行:
pageUrl: { querySuffix: 'csp' },
我也试过正则表达式到URL的末尾由$
并没有工作:
pageUrl: { urlMatches: 'csp$' },
我知道片段标识符#
将不会在pageUrl: { xxx },
中处理,参考https://developer.chrome.com/extensions/events#property-UrlFilter-hostEquals。
它说:如果
匹配的URL(而不片段标识符)指定 正则表达式匹配。如果端口号 与默认端口号相匹配,则会从该URL中剥离端口号。正则表达式使用RE2 语法。
因此,也许pageUrl
将登录页面和工作页面视为相同的URL。
有什么方法可以在这里识别这两个网址吗?
谢谢!