当用户点击Firefox工具栏中的按钮时,我需要更改内容 当前活动的html页面。在标准实施中,它看起来像这样:
function injectNewContent() {
var pageHtml =
[
"<html>",
"<head>",
"</head>",
"<frameset cols='270,*' frameborder='0'>",
"<frame name='frameI' src='http://www.123.com/default.html'>",
"<frame name='frameII' src='" + document.location + "'>",
"<noframes>",
"<body>",
"noframes",
"</body>",
"</noframes>",
"</frameset>",
"</html>"
];
var fullPageHtml = "";
for (var i in pageHtml)
{
fullPageHtml += pageHtml[i];
}
window.document.write(fullPageHtml);
}
我需要在此代码中更改以获得相同的功能吗?
var windowMediator = Components.classes['@mozilla.org/appshell/window-mediator;1'].
getService(Components.interfaces.nsIWindowMediator);
var recentWindow = windowMediator.getMostRecentWindow("navigator:browser");
recentWindow. ???
或者我可能做错了什么?
感谢您的帮助......
答案 0 :(得分:2)
您无需寻找浏览器窗口,您的按钮已经位于其中。要访问当前标签的内容区域,只需使用window.content
即可。这应该做你想要的:
var doc = window.content.document;
doc.open("text/html", true);
doc.write(fullPageHtml);
doc.close();
虽然我个人希望将HTML代码分配给doc.documentElement.innerHTML
。