Единственное, что я могу найти в документации, относящейся к идентификатору является следующий отрывок:
id (целое число) Идентификатор вкладки. Идентификаторы вкладок уникальны в сеансе браузера.
Итак, что мы можем извлечь из этого, так это то, что никакие две вкладки никогда не получат одинаковый идентификатор в том же сеансе. В документах нет информации о том, как они создаются.
В конечном счете, я думаю, что любой подход, который является прогностическим в этом смысле, обречен на ошибки & сбой, вы должны создавать реагирующее приложение против прогнозирующего.
Вместо того, чтобы предположить, что следующая вкладка будет открыта с помощью ID # 12, запишите создание вкладки, тогда вы будете знать идентификатор и можете выполнять операции на основе этого.
Что вам нужно, это tab onCreated event
. Когда будет создана вкладка, вы получите tab
Object, который вы можете получить tabid
и windowid
и выполнить любые действия, которые вы желаете.
Поскольку вы не сообщили нам о своей конечной цели, я не могу дать вам никаких конкретных примеров/кода, которые помогут вам, кроме как указать вам в правильном направлении.
Продолжение от комментариев:
Если вы просто хотите посмотреть на вкладку по идентификатору не было бы легче хранить вкладку мета-данные в словаре вместо списка ?
var metadataRepository = {};
metadataRepository[tab.id] = tab.metadata;
Тогда:
var metadata = metadataRepository[tabId];
if (metadata) {
// Do Stuff
}
Даже Дополнительная информация:
В моей нынешней Chrome (19.xxx ...) двигатель V8 поддерживает метод JavaScript 1.6 от Array.filter(...)
Я сделал небольшой тест here, который имитирует поиск массива с использованием фильтра и выполняет проверку типа. & Строка поиска каждой итерации (что-то общее).
Потребовалось 25 мс на моей машине (относительно новое, i7-2600k), чтобы взорвать 10 000 записей. Хотя это не так быстро по сравнению с скомпилированными языками, это будет sub millisecond при работе со 100-ю вкладками. Я не думаю, что вам нужно слишком беспокоиться о производительности.
Если ваше приложение постоянно ищет это, рассмотрите локальный кеш или словарь, упомянутый выше.
Вы никогда не должны пытаться угадать идентификаторы –