首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在启用CORS的情况下将css应用于IFrame

如何在启用CORS的情况下将css应用于IFrame
EN

Stack Overflow用户
提问于 2016-10-17 14:39:24
回答 2查看 1.9K关注 0票数 0

子域http://board.woodstockschool.in将显示来自my.woodstock.ac.in的Iframe中的内容。

在来自my.woodstock.acin的HTTP头中,它确实包含以下条目:

代码语言:javascript
复制
Access-Control-Allow-Origin => http://board.woodstockschool.in

但我无法使用board.woodstockschool.in网站上的CSS来更改内容外观。

我也尝试过这些:

代码语言:javascript
复制
a ,iframe a{
color: red !important;
}

这会更改除Iframe之外的所有链接的颜色。

这里有一系列像How to apply style to a div which is inside an iframe of the page?这样的问题,但没有一个启用了CORS。

我已经检查了https://www.w3.org/wiki/CORS_Enabled#For_Apache,但没有找到任何关于css的内容。

在不使用任何javascript的情况下,从包装器站点应用css规则的方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2016-10-17 14:47:34

从包装器站点应用css规则的方法是什么?

没有办法。

你能做到的最接近的是:

  • 在iframe的src上设置一个查询字符串,然后让嵌入式页面使用服务器端代码将<link>粘贴到中的样式表。
  • 使用postMessage向嵌入式页面发送一条消息(可能包括样式表的<link>),然后在嵌入式页面上运行JavaScript添加iframe

在这一点上,CORS不会帮助或阻碍你。这完全无关紧要。

票数 1
EN

Stack Overflow用户

发布于 2016-10-17 16:00:07

最好的方法可能是以下方法(如果您同时控制两个站点):

1)使用style参数设置iframe链接,如:

代码语言:javascript
复制
http://your_site.com/target.php?style=a%7Bcolor%3Ared%7D

(最后一句话是由urlencode函数编码的a{color:red} )

2)设置接收方页面target.php如下:

代码语言:javascript
复制
<head>
..........
<style><?php echo filter_var($_GET['style'], FILTER_SANITIZE_STRING);?> </style>
..........
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40079945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档