在 Firefox 24 中,Devtools-tweaks使 Firefox 检查器中的选定项目以深蓝色勾勒,因此它们更加可见。然而,在 Firefox 25 beta 中,它说在查找具有“iframe-ruleview”类的面板时它是未定义的(检查器的正确列表),虽然我可以在 DOM 检查器中看到这个元素,但它是具有 css 属性的右侧面板.
content/inspectorTweaks.js 中的相关代码:
// window.inspector is documented in inspector-panel.js
// .doc and window is inspector.xul window.
window.addEventListener('load',function() {
var frame = document.getElementsByClassName('iframe-ruleview')[0];
if (!frame.contentWindow.location.href.contains('cssruleview.xul')) {
//Not the xul, it's a html we have to extend from here (Firefox 22+)
frame.setAttribute('context',"dtCSSContext");
}
function styleit() {
var frame = document.getElementById('markup-box').children[0];
var doc = frame.contentDocument;
var style= doc.createElement('style');
style.appendChild(doc.createTextNode(
'.theme-selected { border:1px solid blue; padding:1px; margin-left:-2px; border-radius:3px;}'+
'.theme-twisty:not([open]) {top:5px; left:5px;}'
));
doc.body.appendChild(style);//what's the equivalent for old xul file?
}
styleit();
window.inspector.on("markuploaded", styleit);
frame.addEventListener('load',styleit);
//frame.contentWindow.addEventListener('load',styleit);
});
它说frame
是未定义的,这是一个使该代码的其余部分无法正常工作的异常。
我试着用下面的例子来改变它,但我认为它是为了从主机打开 devtools?
window.addEventListener('load',function() {
let {ConsoleUtils, gDevTools} = Components.utils.import("resource:///modules/devtools/gDevTools.jsm", {});
let {devtools} = Components.utils.import("resource://gre/modules/devtools/Loader.jsm", {});
let TargetFactory = devtools.TargetFactory;
console.log('tf:')
console.log(TargetFactory)
console.log(devtools)
let target = TargetFactory.forTab(gBrowser.selectedTab);
^ 此代码给出 gBrowser 未定义错误。