是否总是为tabs.onCreated
回调函数的tab参数定义pendingURL
属性?我正在努力决定是否也需要检查tab.url,就像在这个中一样
chrome.tabs.onCreated.addListener(function (newTab)
{
if(newTab.pendingUrl === extensionURL || newTab.url === extensionURL)
{
//...
}
}
感谢您的真知灼见。
这是我在这里的第一个问题,所以欢迎任何关于如何更好地发布问题的反馈。
只有当浏览器的地址栏中有一个挂起的导航没有可视化解决时,才会定义它。一旦Chrome决定继续(这发生在最终连接到远程服务器之后(,它将更改地址栏中的URL,这将是"挂起"的结束。
无法保证它是否存在,因为它取决于网络堆栈中的异步事件以及操作系统在这个特定时刻调度进程的方式。Chromium的源代码只是有一个if
检查,所以它不做任何假设。
这样做:
if ((newTab.pendingUrl || newTab.url) === extensionURL) {
//....
}
或
const url = newTab.pendingUrl || newTab.url;
if (url === extensionURL) {
//....
}