javascript - 让 Chrome 扩展程序刷新已打开的页面而不是打开新页面

标签 javascript google-chrome google-chrome-extension

收到消息时扩展程序会发送通知。

var notification = new Notification('New message', {
    icon: icon,
    body: dabody,
});

单击时还会打开一个显示消息的页面。

notification.onclick = function () {
    window.open(link);
    chrome.tabs.create({url: "https://website/messages/", selected: false, pinned: true}, function(tab) {
        chrome.tabs.executeScript(tab.id, {
            code: 'window.close();',
            runAt: 'document_idle'
        });
    });
    notification.close();
}

如果 /messages 页面已经打开,我有办法刷新它而不是打开新页面吗?

最佳答案

当您的事件被触发时,您可以尝试通过 chrome.tabs.query 找到该选项卡并重新加载它,或者以其他方式创建一个新选项卡。

类似这样的:

notification.onclick = function () {
    chrome.tabs.query({url:"https://website/messages/"}, function(tabs) {
        if(tabs.length) { 
            chrome.tabs.reload(tabs[0].tabId); 
        }
        else {
            // create new tab
        }
    });
};

关于javascript - 让 Chrome 扩展程序刷新已打开的页面而不是打开新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42464270/

相关文章:

javascript - 显示列表中的最高分

javascript - 在 JavaScript 中更改时下拉列表值为空

javascript - Chrome/Safari 中的后退按钮错误

javascript - Chrome 关闭时是否会触发事件?

javascript - 在 YouTube 页面中发生转换后获取实际的 HTML(chrome 扩展)

javascript - 在 qualtrics 中自定义按钮大小

javascript - 循环遍历数组并返回data属性值

css - 尝试在 Chrome 开发工具中将 CSS 更改保存到磁盘上的文件

javascript - Chrome 扩展 - 从弹出窗口到内容脚本的消息传递

google-chrome-extension - Web Bluetooth API 获取附近所有可用设备的列表