使用 JQuery 修改 iFrame 中内容的 CSS

Posted

技术标签:

【中文标题】使用 JQuery 修改 iFrame 中内容的 CSS【英文标题】:Use JQuery to modify CSS for content in an iFrame 【发布时间】:2015-09-13 20:11:41 【问题描述】:

我的网站上有一个 Twitter 小部件(一个嵌入 iFrame 的 javascript 小部件)。以前我用过

iframe[id^='twitter-widget-'] width:100% !important;

将小部件宽度更改为 100%,而不是默认的 520 像素。直到昨天它工作得很好。不知何故,iframe 上的 CSS 设置不再起作用。我检查了 iFrame 源代码,似乎 Twiiter 添加了这个

.timeline 
  max-width: 520px;
 

因为这个iframe来自twitter,所以我没办法用css来修改.timeline。我尝试使用 Jquery/javascript:

$("#twitter-widget-0").contents().find(".timeline").css("max-width","100%");

但它似乎只适用于控制台。我将这行 JavaScript 放在 php 模板文件中,但它不起作用。我尝试过 body onLoadwindow onloaddocument onload,但都没有。我还将这个 javascript 放在了我的模板文件的末尾,它也没有。

如何解决这个问题?

谢谢,

【问题讨论】:

【参考方案1】:

您不能使用 JavaScript 对任何跨域 iFrame 进行任何 DOM 操作!如果 iFrame 属于同一个域,那么只有您能够做到这一点!

查看这些相关问题

    Can I apply CSS to the elements within an iframe? How to apply CSS to iframe?

简而言之,没有。您不能将 CSS 应用于在 iframe 中加载的 html,除非您可以控制在 iframe 中加载的页面。

【讨论】:

你的意思是为什么我们仍然可以看到控制台输出,对吧?所以对于这个问题,控制台只是显示内容和/或输出的一种方式,不需要任何输入或依赖!就像 DOM 一样,您也无法访问 iFrame 的功能。

以上是关于使用 JQuery 修改 iFrame 中内容的 CSS的主要内容,如果未能解决你的问题,请参考以下文章

【新手】jquery iframe的src动态赋值问题

jquery 如何实现跨域载入其他网站的页面内容

jquery如何获取页面中引入iframe网页的内容

如何使用 jquery 从 iframe 获取内容? [复制]

使用jquery获取iframe内的元素属性

使用 jQuery 获取 iframe 的 HTML 内容