在最近的导航只是当前加载的标签解决方案:浏览器和iframe已经加载
Components.utils.import('resource://gre/modules/Services.jsm')
var aDOMWindow = Services.wm.getMostRecentWindow('navigator:browser');
var iframes = aDOMWindow.gBrowser.contentDocument.querySelectorAll('iframe');
Services.appShell.hiddenDOMWindow.console.log('number of iframes in this tab = ' + iframes.length);
[].forEach.call(iframes, function (frm, i) {
var iframeInnerHtml = frm.contentDocument.documentElement.innerHTML;
});
function logIframeHtml(iframe, i) {
iframe.removeEventListener('DOMContentLoaded', logIframeHtml, true); //this line removes the event listneer if it had one
var iframeDoc = iframe.contentDocument;
if (!iframeDoc) {
Services.appShell.hiddenDOMWindow.console.log('iframe ' + i + ' is not fully loaded yet as it its contentDocument does not exist');
iframe.addEventListener('DOMContentLoaded', logIframeHtml, true);
} else {
var iframeInnerHtml = iframeDoc.documentElement.innerHTML;
Services.appShell.hiddenDOMWindow.console.log('iframe ' + i + ' innerHTML = ' + iframeInnerHtml);
}
}
这里该解决方案是当前选项卡,但如果iframe中加载不信任:
Components.utils.import('resource://gre/modules/Services.jsm')
var aDOMWindow = Services.wm.getMostRecentWindow('navigator:browser');
var iframes = aDOMWindow.gBrowser.contentDocument.querySelectorAll('iframe');
Services.appShell.hiddenDOMWindow.console.log('number of iframes in this tab = ' + iframes.length);
[].forEach.call(iframes, function (frm, i) {
logIframeHtml(frm, i);
});
function logIframeHtml(iframe, i) {
iframe.removeEventListener('DOMContentLoaded', logIframeHtml, true); //this line removes the event listneer if it had one
var iframeDoc = iframe.contentDocument;
if (!iframeDoc) {
Services.appShell.hiddenDOMWindow.console.log('iframe ' + i + ' is not fully loaded yet as it its contentDocument does not exist');
iframe.addEventListener('DOMContentLoaded', logIframeHtml, true);
} else {
var iframeInnerHtml = iframeDoc.documentElement.innerHTML;
Services.appShell.hiddenDOMWindow.console.log('iframe ' + i + ' innerHTML = ' + iframeInnerHtml);
}
}
我不知道为什么人们失望投你这一点。生病给你下面的解决方案 – Noitidart
我不在乎投票 - 很需要解决。 –