我正在开发一个chrome 扩展。现在我遇到了chrome.debugger的问题,调试器只能附加一个 http 请求。无法检测到选项卡的其余请求。我发现这是由回调函数引起的。
根据官方手册chrome.debugger.attach
,当第三个参数为回调函数时,使用, 。在live-headers中,附加代码是这样的:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.debugger.attach({tabId:tab.id}, version,
onAttach.bind(null, tab.id));
});
var version = "1.0";
function onAttach(tabId) {
if (chrome.runtime.lastError) {
alert(chrome.runtime.lastError.message);
return;
}
chrome.windows.create(
{url: "headers.html?" + tabId, type: "popup", width: 800, height: 600});
}
在我的代码中,我这样调用 attach (只是不使用 bind):
myAttach = function () {....};
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.debugger.attach({tabId:tab.id}, version, myAttach)
});
当我使用前一种格式时,一切正常。我无法理解差异和结果。
问题:当我使用第二种方法时,将没有更多Network.responseReceived
或Network.requestWillBeSent
收到消息。我尝试使用getTargets并发现选项卡的调试器附加已分离。当我回到第一种方法时,一切都很好。
对不起我糟糕的英语
谢谢你的帮助