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

标签 google-chrome google-chrome-extension

我想写一个小的 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/

相关文章:

javascript - base64 数据 uri 的内容安全策略语法

javascript - 在 chrome 扩展中使用 channel google app engine

google-chrome - 网站上的Google Chrome扩展程序串行端口

html - firefox 的行高问题

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

javascript - Chrome 扩展程序 - 请求当前选项卡的可选权限

linux - Chrome 不能播放 MP4

ruby-on-rails - 慢资源 ruby​​ 1.9.3、macos、rails 3.2

javascript - 如何在 Android 平板电脑上使用保存的密码在 chrome-mobile 中自动登录网站

jquery - Chrome 上的旋转文本在动画时会晃动