2010-03-07 79 views
1

我正在使用帶有bbcode的phpbb3論壇來插入iframe。我想從iframe的論壇中使用CSS。我嘗試了一些我在這裏找到的代碼,但它不起作用。我可能會做一些錯誤的事情,但我很樂意讓這個工作,特別是因爲用戶可以更改論壇的CSS。論壇是:botdls.prophbb.com,iframe是頂部的「吶喊」。謝謝。這裏是我從谷歌這個網站上找到的代碼。在iFrame上從父項獲取CSS

var cssLink = document.createElement("link") 
      cssLink.href = "pFstylesEditor.css"; 
      cssLink .rel = "stylesheet"; 
      cssLink .type = "text/css"; 

      //Instead of this 
      //frames['frame1'].document.body.appendChild(cssLink); 
      //Do this 

      var doc=document.getElementById("edit").contentWindow.document 

      ///If you are doing any dynamic writing do that first 
      doc.open; 
      doc.write(myData); 
      doc.close(); 

      //Then append child 
      doc.body.appendChild(cssLink); 
+0

什麼是「myData」?代碼運行之前/之後Firebug會向您展示什麼? – Pointy 2010-03-07 13:05:14

+0

我不認爲動態寫作部分正在做任何事情。我可以把它拿出來。這是我加載到iframe的CFM頁面。 – 2010-03-08 01:21:54

回答

0

我馬上發現了一個問題。您正在父文檔中創建一個元素並嘗試將其添加到子文檔 - 這不起作用。你需要使用子幀的文檔而不是創建元素:

var doc=document.getElementById("edit").contentWindow.document; 

var cssLink = doc.createElement("link"); 
cssLink.href = "pFstylesEditor.css"; 
cssLink.rel = "stylesheet"; 
cssLink.type = "text/css"; 

///If you are doing any dynamic writing do that first 
doc.open();  // <-- you also missed the parenthesis here 
doc.write(myData); 
doc.close(); 

//Then append child 
doc.body.appendChild(cssLink); 

此外,open是一種方法和你錯過關閉括號(open())。

+0

我只是把這個從另一個職位拉到這裏。我怎樣才能找出ElementID? Firebug將它們全部分開列出。我嘗試了我認爲的元素ID,但我只是想確保這不是我的錯誤。另外,pFstylesEditor.css應該改爲css樣式表的實際鏈接,還是像原型或jQuery這樣的命名約定? – 2010-03-08 01:21:00