自版本 37.0.2062.103 以来,我们的 Chrome 扩展程序不再正常工作(它曾经在 chrome 版本 36.0.1985.143 上正常工作)。
具体来说,当我们使用 DOMDebugger 时,调试器 API 已停止为我们工作。
请参阅随附的代码:(background.js)
chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab){
if( changeInfo.status == "loading" && tab.active){
var debugId = {tabId:tabId};
chrome.debugger.attach(debugId, '1.0', function() {
chrome.debugger.sendCommand(debugId, 'Debugger.enable', {}, function() {
chrome.debugger.sendCommand(debugId, "DOMDebugger.setEventListenerBreakpoint", {'eventName':'click'},
function(result) {
console.log('registering click');
});
});
});
}
});
chrome.debugger.onEvent.addListener(onEvent);
function onEvent(debuggeeId, method,params) {
if(method=="Debugger.paused"){
console.log('DONE!');
}
};
扩展成功启动调试器。我们得到黄色的调试器功能区。
我们还在控制台中看到“注册点击”消息。结果参数是一个空对象 {}(第 8 行)。
但是,单击具有单击事件侦听器的按钮后,什么也不会发生。
它曾经可以正常工作,没有任何问题。
似乎它回归了https://codereview.chromium.org/305753005。现在需要调用“DOM.enable”才能正常工作。在 Chrome 方面,我们应该在 setEventListenerBreakpoint 上隐式启用 DOM 域以实现向后兼容性。不幸的是它已经被挤进了稳定版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)