Javascript 我是否可以更改iframe中包含的元素的样式,而iframe本身包含在外部HTML中?
我有一个包含在Javascript 我是否可以更改iframe中包含的元素的样式,而iframe本身包含在外部HTML中?,javascript,html,iframe,Javascript,Html,Iframe,我有一个包含在iframe中的导航菜单,它本身是从外部文件中提取的: <iframe src="iframe.htm"></iframe> 目标是通过更改用户当前访问的页面锚的背景颜色和文本颜色来提供用户反馈。因此在iframe.htm中,对于id=“index”我可以做: <body onload="document.getElementById('index').style.backgroundColor = 'sandybrown'; document.ge
iframe
中的导航菜单,它本身是从外部文件中提取的:
<iframe src="iframe.htm"></iframe>
目标是通过更改用户当前访问的页面锚的背景颜色和文本颜色来提供用户反馈。因此在iframe.htm
中,对于id=“index”
我可以做:
<body onload="document.getElementById('index').style.backgroundColor = 'sandybrown'; document.getElementById('index').style.color = 'black'">
我的问题:是否可以通过JavaScript以类似的方式访问包含在外部HTML中的iframe中的元素(从外部)?否,不可能通过JS或CSS向iframe代码添加任何样式。是的,可以(除非两个页面位于同一域中)。您可以使用contentDocument属性,例如:
<iframe id="myFrame" src="iframe.htm"></iframe>
<script>
var f = document.getElementById("myFrame");
f.contentDocument.getElementById('index').style.backgroundColor = 'sandybrown';
</script>
var f=document.getElementById(“myFrame”);
f、 contentDocument.getElementById('index').style.backgroundColor='sandybrown';
这绝对是可能的。看我的例子。
<iframe id="myFrame" src="iframe.htm"></iframe>
<script>
var f = document.getElementById("myFrame");
f.contentDocument.getElementById('index').style.backgroundColor = 'sandybrown';
</script>