我在扩展程序中同时使用了chrome.webRequest.onBeforeRequest和chrome.tabs.onCreate侦听器。我正在尝试利用您在tabs.onCreate中获得的tab.openerTabId属性,以在webRequest.onBeforeRequest回调运行时使它可用,但是onBeforeRequest似乎在tabs.onCreate触发之前正在运行。有什么简单的方法可以解决这个问题吗?
var openerTabId;
function checkNewTab(tab) {
openerTabId = tab.openerTabId;
}
function checkRedirects(details) {
//code that I don't want to run until I have openerTabId in those
//instances where web request is due to a new tab being opened
}
function setupNewTabListener() {
chrome.tabs.onCreated.addListener(checkNewTab);
}
function setUpRedirectListener() {
chrome.webRequest.onBeforeRequest.removeListener(checkRedirects);
var filter = createFilter(redirects);
chrome.webRequest.onBeforeRequest.addListener(checkRedirects, filter, ["blocking"]);
}
function setupInitial() {
'''
setupNewTabListener();
setUpRedirectListener();
'''
}
chrome.storage.local.get({
'''
setupInitial();
});