2011-05-26 95 views
3

当用户单击Firefox工具栏上的按钮时,我需要更改当前活动html页面的内容 。在标准] d实现它看起来像这样:在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. ??? 

或者可能是我做错了什么?

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

回答

2

你并不需要去寻找的浏览器窗口,您的按钮已经被坐。要访问当前选项卡的内容区域,只需使用window.content。这应该做你想做的:

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

虽然我个人宁愿分配HTML代码doc.documentElement.innerHTML