是否可以仅使用CSS更改位于页面上iframe内的div的样式?
使用CSS影响iframe中的div样式
从客户端不可能。由于Iframe不属于您的域,因此将引发JavaScript错误“错误:拒绝访问属性“文档”的权限”。唯一的解决方案是从服务器端代码获取页面并更改所需的CSS。
可能不是您的思维方式。iframe也必须<link>
在css文件中。而且,即使它位于其他域中,您也无法使用javascript做到这一点。
是的,虽然很麻烦,但还是有可能的。您需要将页面的HTML打印/回显到页面的主体中,然后应用CSS规则更改功能。使用上面给出的相同示例,您实际上将使用一种解析方法来查找页面中的div,然后将CSS应用于该div,然后将其重新打印/回显给最终用户。我不需要这个,所以我不想为了另一个功能而将该功能编码到另一个网页的CSS中的每个项目中。
参考文献:
快速的答案是:不,对不起。
仅使用CSS是不可能的。基本上,您需要控制iframe内容才能设置其样式。有一些方法可以使用javascript或您选择的网络语言(我已经读过一些,但并不熟悉我自己)动态插入一些所需的样式,但是您需要直接控制iframe内容,听起来就像你没有。
您可以先检索内容,iframe
然后jQuery
像往常一样对它们使用选择器。
$("#iframe-id").contents().find("img").attr("style","width:100%;height:100%")
$("#iframe-id").contents().find("img").addClass("fancy-zoom")
$("#iframe-id").contents().find("img").onclick(function(){ zoomit($(this)); });
祝好运!
简而言之,没有。
您不能将CSS应用于iframe中加载的HTML,除非由于跨域资源限制而可以控制iframe中加载的页面。
只需添加它,一切都很好: