當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript browser.tabs.query方法代碼示例

本文整理匯總了TypeScript中webextension-polyfill-ts.browser.tabs.query方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript browser.tabs.query方法的具體用法?TypeScript browser.tabs.query怎麽用?TypeScript browser.tabs.query使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在webextension-polyfill-ts.browser.tabs的用法示例。


在下文中一共展示了browser.tabs.query方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: onTabRemoved

async function onTabRemoved(id: number, info: Tabs.OnRemovedRemoveInfoType) {
    const state = getWindowState(info.windowId);

    // Since we don't have a good way of determining whether the removed tab was
    // previously the active tab, make an educated guess based on the fact that
    // the browser may focus some other tab before we get this message, so the
    // removed tab will be either:
    // 1. The most-recent tab in the window's history
    // 2. The second most-recent tab in the window's history, and the active
    //    window was just changed.
    const browserChangedFocus = activeChanged && id === state.history.second;

    const wasActive = browserChangedFocus || id === state.history.first;

    logger.enabled && logger.log(
        `wasActive = ${wasActive}, activeChanged = ${activeChanged}, browserChangedFocus = ${browserChangedFocus}`);

    // If we are overriding which tab gets focused after removing a tab, and the
    // browser focused some other tab before telling us which tab was removed,
    // rewind the state by one to ignore the unwanted change made by the browser.
    if (browserChangedFocus && settings.onClose !== 'default') {
        state.rewind();
    }

    state.removeTab(id);

    // If the removed tab was active, override which tab gets focus next.
    if (wasActive) {
        switch (settings.onClose) {
            case 'lastfocused':
                const newTab = state.history.first;
                logger.enabled && logger.log(`focusing last-focused tab ${newTab}`);

                if (newTab !== undefined) {
                    await focusTab(newTab);
                }
                break;

            case 'next':
            case 'previous':
                // If 'next', the next tab will be in the closing tab's old position.
                // If 'previous', focus the tab right before that, or the leftmost tab.
                let index = state.activeTabIndex;

                logger.enabled && logger.log(`focusing ${settings.onClose} tab from position ${index}`);

                if (index !== undefined) {
                    if (settings.onClose === 'previous') {
                        index = Math.max(0, index - 1);
                    }

                    const tabs = await browser.tabs.query({ windowId: info.windowId, index });
                    if (tabs.length > 0) {
                        await focusTab(tabs[0]);
                    }
                }
                break;
        }
    }
}
開發者ID:ChaosinaCan,項目名稱:ClassicTabs,代碼行數:60,代碼來源:TabManager.ts

示例2: initActiveTabs

async function initActiveTabs() {
    const activeTabs = await browser.tabs.query({ active: true});

    for (const tab of activeTabs) {
        if (tab.windowId === undefined || tab.id === undefined) {
            continue;
        }

        const state = getWindowState(tab.windowId);
        state.addTab(tab.id);
    }
}
開發者ID:ChaosinaCan,項目名稱:ClassicTabs,代碼行數:12,代碼來源:TabManager.ts

示例3: async

export const moveTab = async (direction: tabbo.Direction): Promise<void> => {
	const tabs: browser.tabs.Tab[] = await browser.tabs.query({currentWindow: true});
	const pinnedTabs: browser.tabs.Tab[] = tabs.filter(
		(e: browser.tabs.Tab): boolean => e.pinned
	);
	/*
	 *const unpinnedTabs: browser.tabs.Tab[] = tabs.filter(
	 *    (e: browser.tabs.Tab): boolean => !e.pinned
	 *);
	 *const highlightedTabs: browser.tabs.Tab[] = tabs.filter(
	 *    (e: browser.tabs.Tab): boolean => e.highlighted
	 *);
	 *const nonHighlightedTabs: browser.tabs.Tab[] = tabs.filter(
	 *    (e: browser.tabs.Tab): boolean => !e.highlighted
	 *);
	 */

	const tab: browser.tabs.Tab = await utils.tabs.getCurrent();

	const currentIndex: number = tab.index;
	let newIndex: number = 0;
	let lowerBound: number = 0;
	let upperBound: number = 0;

	if (tab.pinned) {
		lowerBound = 0;
		upperBound = pinnedTabs.length - 1;
	} else {
		lowerBound = pinnedTabs.length;
		upperBound = tabs.length - 1;
	}

	if (direction === tabbo.Direction.LEFT) {
		newIndex = (currentIndex === lowerBound) ? upperBound : currentIndex - 1;
	} else {
		newIndex = (currentIndex === upperBound) ? lowerBound : currentIndex + 1;
	}

	try {
		await browser.tabs.move(tab.id, {index: newIndex});
	} catch (e) {
		logging.error(e.message);
	}
};
開發者ID:dqgorelick,項目名稱:tabbo,代碼行數:44,代碼來源:functionality.ts

示例4: async

	getCurrent: async (): Promise<browser.tabs.Tab> => {
		return (await browser.tabs.query({active: true, currentWindow: true}))[0];
	},
開發者ID:dqgorelick,項目名稱:tabbo,代碼行數:3,代碼來源:utils.ts


注:本文中的webextension-polyfill-ts.browser.tabs.query方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。