javascript - 将 CSS 应用于 IFrame 时出现跨浏览器问题

标签 javascript css iframe

我的 Main.html 文件中有一个 iFrame。我从 iFrame 调用了 child.html。 <iframe src="child.html" id="frame1"></iframe> (这是在 Main.html 文件中)

我需要将 Main.html 的 CSS 应用到 child.html 文件。为此,我使用了 main.html 中的内联 javascript。

代码是:

function ChangeMe() {
        var cssLink = document.createElement("link")
        cssLink.href = "Main.css";
        cssLink.rel = "stylesheet";
        cssLink.type = "text/css";
        frames['frame1'].document.body.appendChild(cssLink);
    }

这仅在 IE 8 中运行良好。我希望它在所有浏览器(FF 4、chrome)上运行。

任何建议!

谢谢

最佳答案

使用 jQuery,尝试以下方法:

如果您使用 <link> :

$('body').append('<link rel=StyleSheet href="'+$("link:contains('Main.css')").attr('href')+'" type="text/css" media=screen />');

如果您使用 <style>

$('body').append('<style src="'+$("style:contains('Main.css')").attr('href')+'" type="text/css" media="screen" />');

我不能 100% 确定语法是否正确,因为我没有机会测试它。但这是一个开始。基本上你想附加一个 <link><style>标记到包含 href="" 的 iframe或 src=""分别是您的 Main.css。

编辑

有机会对此进行编码,您需要以下内容:

$("#myFrame").contents().find("body").append('<style src="'+$("style[src='some.css']").attr('src')+'"></style>

在此处检查工作示例 - http://jsfiddle.net/ajthomascouk/erEUW/

关于javascript - 将 CSS 应用于 IFrame 时出现跨浏览器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6394161/

相关文章:

javascript - 页面上加载了超过 100 个 soundcloud iframe 小部件

javascript - Ajax 将 bool 值与 HTML 一起从服务器传递到具有 HTML 数据类型的客户端

javascript - 货币兑换脚本不起作用

javascript - 修复 AWS API 网关和放大中不存在的 CORS "Response to preflight..." header

html - 固定位置不会让我滚动,相对位置不会拉伸(stretch) div

javascript - 从同域 iframe 向父窗口添加新功能

javascript - 加载 YouTube 评论后火狐插件自动调用 JavaScript

css - 根据ng-repeat中的动态数据为div添加颜色

css - 如何在 Magento 的图像产品上重叠 2 张图像?

ajax - IFRAME 中的 Adsense