从客户端填充IFRAME

时间:2014-01-09 05:04:35

标签: javascript jquery iframe

我知道可以使用JavaScript创建IFRAME。

客户端是否也可以指定正文HTML,还可以在IFRAME和CSS上指定相关的JavaScript?

2 个答案:

答案 0 :(得分:2)

我不确定我是否正确理解你的问题。

我们可以通过调用

来获取iframe文档

iframeEl.contentWindow.document

然后我们可以控制里面的html,css。

小心相同的原产地政策:

我们只能控制与主页面相同的iframe。

答案 1 :(得分:1)

您希望网页看起来像这样(摘要):

<html>
...mypage header...
<iframe src="otherpage.com" class="myclass" />
...mypage footer...
</html>

右?

使用javascript,您可以更改除“otherpage.com”内容之外的任何内容。您可以更改iframe等的类。我建议使用jquery,因为它提供了操作HTML DOM的简便方法。

如果您想更改iframe内容的外观,那么您可以这样做,但我会强烈反对它。如果您决定这样做,可以查看this post解释如何使用jQuery进行操作。您还可以查看我从以下位置复制此来源的this post

var frm = frames['frame'].document;
var otherhead = frm.getElementsByTagName("head")[0];
var link = frm.createElement("link");
link.setAttribute("rel", "stylesheet");
link.setAttribute("type", "text/css");
link.setAttribute("href", "style.css");
otherhead.appendChild(link);

我认为javascript上的事情并不容易。出于安全原因,您无法执行父站点端托管的javascript以影响iframe目标。如果您的目标站点在您的控制之下,那么您可以使用一些跨域通信(您可以看到this post),但这也不是一项简单的任务。

通常,操纵iframe内容意味着系统的功能取决于您无法控制的另一个系统的功能。您了解当您执行此操作时,非常依赖您的系统。如果iframe内容发生变化,那么您的代码就会依赖于它。 我强烈反对你不要遵循这条道路。

希望我帮忙!