Всегда ли pendingURL определен для tabs.onCreated (function (tab) {})? - PullRequest
0 голосов
/ 28 февраля 2020

Всегда ли будет определяться свойство pendingURL для аргумента табуляции функции обратного вызова tabs.onCreated? Я пытаюсь решить, нужно ли мне проверять tab.url, как в этом

chrome.tabs.onCreated.addListener(function (newTab)
{
  if(newTab.pendingUrl === extensionURL || newTab.url === extensionURL) 
  {
    //...
  }
}

Спасибо за любую информацию, которую вы можете дать.

Это мой первый вопрос, поэтому любые отзывы о том, как лучше размещать вопросы, приветствуются.

1 Ответ

1 голос
/ 28 февраля 2020

Определяется только в том случае, если есть ожидающая навигация, которая не разрешается визуально в адресной строке браузера. Как только Chrome решит продолжить (что происходит после окончательного подключения к удаленному серверу), он изменит URL в адресной строке, и это будет конец «ожидания».

Гарантии нет будет ли он присутствовать или нет, потому что это зависит от асинхронных событий в сетевом стеке и от того, как ОС планирует процессы в данный конкретный момент. Исходный код Chromium просто имеет if check там , поэтому он ничего не принимает.

Сделайте это так:

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

или

const url = newTab.pendingUrl || newTab.url;
if (url === extensionURL) {
  //....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...