是否可以设置跨域 iframe 内容的样式
Is it possible to style the content of a cross-domain iframe?
当我将Kickstarter小部件嵌入我的网站时,我想设置小部件的样式以更好地匹配我的网站。如果您访问Kickstarter项目页面并单击特色图像/视频下方的"嵌入"链接,则可以找到嵌入代码。下面是可用于测试的示例:
<iframe frameborder="0" height="420" scrolling="no" src="https://www.kickstarter.com/projects/1973403569/never-lose-anything-again/widget/card.html?v=2" width="220"></iframe>
显然,我可以在html iframe标签中更改宽度和高度,但是当我尝试使用CSS在iframe中包含的元素上设置任何其他样式时,它没有任何效果。我认为这是因为外部脚本在创建时指示小部件的样式,因为如果我在页面通过浏览器加载后编辑 css,效果会正确注册。我尝试使用 jQuery 函数 $(document).ready(fuction(){});包含一些用于更改 css 的 jQuery,但这也失败了。
编辑:在做了更多的阅读之后,似乎手头的问题是跨域iframe真的不喜欢被告知该怎么做。我读了几个答案,似乎每个人都对此有不同的想法。我无法判断是否有实际方法可以做到这一点。有谁知道访问跨域 iframe 的 css 的可靠方法?
!重要之后的 CSS 应该覆盖小部件中使用的 CSS。
Google corsproxy。当 CORS 阻止它时,它可用于访问 iframe。无论如何,它更像是一种黑客而不是解决方案,它可能不适用于您的情况
对于设置iframe的样式,您需要首先使用内容方法。它可以在加载 DOM 时使用。
$('iframe').on('load', function(){
$('iframe').contents().find('form').attr('target','_blank');
$('iframe').css('min-height','1px !important;');
$('iframe').contents().find('form').css('background-color','#f7f7f7 !important;')
$('iframe').contents().find('form').addClass('awesome');
});
相关文章:
- 将样式表插入iframe
- 从跨域对Iframe应用样式
- 需要从父页面使用 javascript 将 css 样式添加到 iframe
- 在第二次加载时更改 iframe 样式,在 Internet Explorer 9 中不起作用
- 使用 JavaScript 在 iframe 中通过 ID 更改元素的 CSS 样式
- 如何使用样式将 iframe 中的克隆节点复制到其父节点
- 在iframe中编辑另一个网页的样式的方法,即使是表面上的
- iFrame 中的实时预览和保存样式.css每 30 秒一次
- 在 Google 自定义搜索 iFrame 中设置内容的样式
- 是否可以设置跨域 iframe 内容的样式
- 为什么 jQuery 在使用样式标签填充 iframe 时会删除正文和头部标签,但不能没有样式标签
- 我可以更改包含在iframe中的元素的样式吗?iframe本身包含在外部HTML中
- IE10不支持iframe中的样式表链接
- 将样式表注入Iframe(Facebook Like Box)
- 如何自定义twitter iframe滚动条的样式
- 是否有事件在加载DOM之后触发,但在任何外部资产(如图像、样式、iframe等)之前触发?
- 对以编程方式打开的fancybox iframe进行样式化
- Iframe改变内容CSS样式
- 改变特定javascript生成iframe的CSS样式
- 如何从css或javascript中定位iframe中的元素进行样式化