2010-03-07 41 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