繁体   English   中英

使用window.frames属性和iframe ID获取iframe

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM