2011-05-26 47 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