Google chrome extension 是否始终为制表符定义pendingURL.onCreated(函数(制表符){})?

Google chrome extension 是否始终为制表符定义pendingURL.onCreated(函数(制表符){})?,google-chrome-extension,Google Chrome Extension,是否始终为tabs.onCreated回调函数的tab参数定义pendingURL属性? 我正在尝试决定是否还需要检查tab.url,如下所示 chrome.tabs.onCreated.addListenerfunction newTab { 如果newTab.pendingUrl==extensionURL | | newTab.url==extensionURL { //... } } 感谢您提供的任何见解 这是我在这里的第一个问题,所以欢迎任何关于如何更好地发布问题的反馈 只有当浏览器的

是否始终为tabs.onCreated回调函数的tab参数定义pendingURL属性? 我正在尝试决定是否还需要检查tab.url,如下所示

chrome.tabs.onCreated.addListenerfunction newTab { 如果newTab.pendingUrl==extensionURL | | newTab.url==extensionURL { //... } } 感谢您提供的任何见解


这是我在这里的第一个问题,所以欢迎任何关于如何更好地发布问题的反馈

只有当浏览器的地址栏中存在无法直观解析的挂起导航时,才会定义此选项。一旦Chrome最终连接到远程服务器后决定继续,它将更改地址栏中的URL,这将是挂起的结束

无法保证它是否存在,因为它取决于网络堆栈中的异步事件以及操作系统在这个特定时刻调度进程的方式。Chromium的源代码只是有一个if检查,所以它不做任何假设

这样做:

if ((newTab.pendingUrl || newTab.url) === extensionURL) {
  //....
}


我基本上理解pendingUrl的用途,我想问的是,特别是在tabs.onCreated事件中,它是否会被一致地定义。感谢您提到if A | | B===C技巧,我习惯于A | | B返回bool。这不一定,因为它取决于网络堆栈中的异步事件以及操作系统在这个特定时刻安排进程的方式。chromium的源代码只是有一个if检查,所以它不做任何假设。谢谢,这回答了我的问题。我会继续检查,只是把悬而未决的部分放在第一位。反馈:使用一个更有意义的标题。就目前所写的内容而言,你的文章并不清楚,标题中没有问题。另外,Chrome扩展开发部分是无用的,这已经被你标记了google-Chrome-Extension的事实所暗示。注意,谢谢。我会确保下次标题中有一个实际的问题,尽量不要有任何标签冗余。如果你愿意,你也可以编辑文章的标题或正文。
const url = newTab.pendingUrl || newTab.url;
if (url === extensionURL) {
  //....
}