2010-09-10 141 views
0

我有一个运行Js代码的iframe,我不想控制iframe DOM选项和css样式。
我该怎么做?如果您wan't使用jQuery,那好吧,但是我preffer纯JavaScript ...如何在页面的iframe中控制页面?

的事情,我想修改:
- FRAMEBORDER
- CSS样式(浮动,显示,位置,溢出)
- 没有滚动条

编辑:代码运行的的iframe

感谢

+0

代码在父页面或iframe内运行的位置? – slikts 2010-09-10 11:27:30

+0

框架内 – CuSS 2010-09-10 14:08:35

+0

框架内的页面是否与外部文档在同一个域上运行? (虽然收集你以前的问题,我认为答案是否定的。) – 2010-09-10 14:10:41

回答

2

我从你以前的问题中推断,iframe中的文档是而不是,它与外部页面位于同一个域中。

在这种情况下,您的选择非常有限,这也是因为Same Origin Policy。您将无法使用Javascript访问外部页面的元素或CSS。这包括该页面上的元素。

任何设计决策,你将因此不得不把内嵌到iframe标签:

<iframe frameborder="0" style="float: left; width: 500px; height: 200px ...."> 

我认为适用于你提到,除了滚动条的行为的一切:那你可以iframe的文档中使用的控制body元素的overflow属性。

想到的唯一替代想法是嵌入iframe的网站还在文档的head部分中包含来自您的域的样式表。你当然会完全控制CSS。

如果您将该CSS中的设计规则限制为iframe(例如,通过使用#id选择器),那也可以。缺点是,如果样式表没有包含而不是,则iframe会中断。这就是为什么大多数小部件提供者使用内联CSS。

+0

所以..我将不得不创建一个JS来创建iframe,接收关于json的信息,并将其应用于iframe? – CuSS 2010-09-10 14:16:38

+0

@CuSS烨,这将工作,我想。没想到,好主意! – 2010-09-10 14:18:04

+0

但@CuSS在这种情况下,您可以动态生成脚本,并将其中的正确样式作为内联。这将为您节省一个请求 – 2010-09-10 14:18:48