google-chrome - chrome.tabs 问题与 chrome.tabs.update

我想写一个小的 chrome 扩展程序,它应该从网页 A(当前网页)获取信息,将选项卡更新到网页 B,然后将代码注入(inject)网页 B。不幸的是,以下代码正在将网页更新到 B 但注入(inject)网页A的代码。background.html中的代码是:

chrome.tabs.update(tab.id,{url: "http://B.com"});
chrome.tabs.executeScript(tab.id, {file: "inject_into_B.com.js"}); /* injections goes misleadingly to webpage A*/

最佳答案

你想要这样的东西:

chrome.tabs.update(tab.id, {url: request.url, active: true}, function(tab1) {

    // add listener so callback executes only if page loaded. otherwise calls instantly
    var listener = function(tabId, changeInfo, tab) {

        if (tabId == tab1.id && changeInfo.status === 'complete') {
            // remove listener, so only run once
            chrome.tabs.onUpdated.removeListener(listener);
            // do stuff
        }
    }
    chrome.tabs.onUpdated.addListener(listener);
});

关于google-chrome - chrome.tabs 问题与 chrome.tabs.update 和 chrome.tabs.executeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584517/

相关文章:

opengl - 如何将 "clear color"插入属性堆栈

.net - 重性高潮不起作用

sql-server - SQL Server 数据库还原卡在 99%

sql-server - SQL 服务器 2008 : how does NOLOCK works

hsqldb - 使用序列将 Liquibase 数据加载到 HSQLDB

datetime - R:计算2个数字时间之间耗时,例如944和1733是469分钟

php - 可以使用 PHP ImageMagick 获得透明渐变吗?

php - 如何在 PHP 中使用 substr_count() 计算空格

php - 如何在任何给定日期之前获得本周的周末?

sql-server - T-SQL 固定宽度输出