![](/img/trans.png)
[英]Is there a way to get the iframe dom element from window.frames[0]
[英]Get iframe with window.frames property vs. iframe ID
我不知道以下原因为何不起作用:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Iframe</title>
<style>
</style>
</head>
<body>
<iframe name="myFrame"></iframe>
<script>
window.frames["myFrame"].style.background = "green";
</script>
</body>
</html>
但是,如果您直接使用其ID
访问iframe,则可以正常使用:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Iframe</title>
<style>
</style>
</head>
<body>
<iframe id="myFrame"></iframe>
<script>
document.getElementById("myFrame").style.background = "green";
</script>
</body>
</html>
如何使用window.frames
使第一个代码正常运行?
我认为您必须执行for循环才能找到所有帧,然后通过它们的索引对其进行访问。
for(var i=0; i < frames.length; i++) {
console.log(frames[i]);
}
这对您不起作用,因为它将在框架内返回窗口对象,而不是iframe元素。 如果要使用名称属性,则可以使用document.getElementsByName("myFrame")[0]
但建议您通过id访问它。
对于getElementsByName,它应该工作相同,请注意,它返回的是元素数组,而不是元素数组。
这两个语句对于名称为“ myFrame”和id为“ myFrame”的框架应具有相同的效果:
document.getElementsByName("myFrame")[0].style.background = "green";
document.getElementById("myFrame").style.background = "green";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.