在Firefox 24中,Devtools-tweaks使Firefox檢查器中的選定項目以深藍色顯示,因此它們更加明顯。然而,在Firefox 25 beta中,它表示在使用'iframe-ruleview'類(檢查器的右側列表)查找面板時未定義,雖然我可以在DOM檢查器中看到此元素,但它是具有CSS屬性的右側面板。getElementsByClassName()未在Firefox中找到元素25
相關的代碼在內容/ 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未定義的錯誤。
嘗試'var frame = document.querySelector('。iframe-ruleview');' – Sergio
向我們展示相關的HTML。如果在當前框架中有一個對象具有一個「iframe-ruleview」類,那麼它將起作用,所以還有其他事情正在進行,我們需要查看HTML以幫助您瞭解哪些問題是錯誤的。 – jfriend00