Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我是否可以更改iframe中包含的元素的样式,而iframe本身包含在外部HTML中?_Javascript_Html_Iframe - Fatal编程技术网

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>