在Firefox扩展中更改'fly'上的Html页面内容

时间:2011-05-26 00:13:51

标签: firefox-addon xul

当用户点击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. ???

或者我可能做错了什么?

感谢您的帮助......

1 个答案:

答案 0 :(得分:2)

您无需寻找浏览器窗口,您的按钮已经位于其中。要访问当前标签的内容区域,只需使用window.content即可。这应该做你想要的:

var doc = window.content.document;
doc.open("text/html", true);
doc.write(fullPageHtml);
doc.close();

虽然我个人希望将HTML代码分配给doc.documentElement.innerHTML