Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome extension Chrome页面操作弹出窗口消失_Google Chrome Extension - Fatal编程技术网

Google chrome extension Chrome页面操作弹出窗口消失

Google chrome extension Chrome页面操作弹出窗口消失,google-chrome-extension,Google Chrome Extension,我需要一个页面动作弹出图标出现时,标签有一个特定的网址在地址栏 我的背景页上有这个 chrome.tabs.query({url:"MYURL.COM"} , function(tab) { for(i=0;i<tab.length;i++) { console.log(tab[i].id); chrome.pageActi

我需要一个页面动作弹出图标出现时,标签有一个特定的网址在地址栏

我的背景页上有这个

chrome.tabs.query({url:"MYURL.COM"} , function(tab)
            {
                for(i=0;i<tab.length;i++)
                {
                    console.log(tab[i].id);
                    chrome.pageAction.show(tab[i].id);
                }

            });
chrome.tabs.query({url:MYURL.COM},函数(tab)
{

对于(i=0;i用于侦听您感兴趣的域的新选项卡和选项卡重新加载。

原因是background.js页面只加载一次,因此您需要在每次更新页面选项卡时添加一个侦听器,以检查是否应显示页面操作,如下所示:

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
    if (tab.url.indexOf("MYURL.COM") > -1) {
        chrome.pageAction.show(tabId);
    }
});

没有理由像您所做的那样重复每个选项卡。

正如Adam所说的,
选项卡。onUpdate
事件就是这样做的

无论如何,[似乎我就是那个体验过
tabs.onUpdate
事件不总是在应该的时候触发的人-

因此,如果你有同样的问题,你可能想尝试我的修改版本,已证明对我100%可靠

chrome.tabs.onUpdated.addListener(function(tabId, change) {
    if (change.status == "complete") {
        chrome.tabs.query({active: true}, function(tabs) {
            var tab = tabs[0];
            // Now do stuff with tab .. Eg:
            if (tab.url.indexOf("MYURL.COM") > -1) {
                chrome.pageAction.show(tab.id); } 
            else {
                chrome.pageAction.hide(tab.id); }
        });
    }   
});