我尝试将外部页面加载到iframe中并更改该页面的背景颜色
这是代码(它不起作用 - 它改变父页面的颜色而不是iframe页面):
<style type="text/css">
iframe {
background-color: #F00;
}
</style>
<iframe src="http://www.filehippo.com/" height="100%" width="100%">
</iframe>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('body').css('background-color', '#F00');
});
</script>
答案 0 :(得分:4)
src
的{{1}}属性是否具有与其父页面匹配的域,协议和端口?
如果否,iframe
是外部的,那么
你无法改变的原因是因为Same Origin Policy。
如果是,那么您可以将iframe
添加到iframe并使用此
<body>
所以你的代码将是
$(document).ready(function(){
$('iframe').contents().find('body').css('backgroundColor', 'Your Color');
});
答案 1 :(得分:3)
你不能; security restriction无法修改来自filehippo.com等不同域的iframe
的内部结构(例如,考虑修改其他网站的登录页面有多危险) )。
另一方面,请注意,即使iframe
的内容来自同一个域,您的方法也无效。请参阅this question了解正确的方法。
答案 2 :(得分:0)
纯Javascript将此覆盖颜色存档于正文
var x = document.getElementById("myframe");
var y = x.contentWindow.document;
y.body.style.backgroundColor = "red";
查看实时 W3Schools