我想知道为什么以下不起作用:
<!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
使第一个代码正常运行?
答案 0 :(得分:1)
我认为您必须执行for循环才能找到所有帧,然后通过索引访问它们。
for(var i=0; i < frames.length; i++) {
console.log(frames[i]);
}
答案 1 :(得分:0)
这对你不起作用,因为它将返回框架内的窗口对象,而不是iframe元素。如果您想使用name属性,可以使用document.getElementsByName("myFrame")[0]
,但我建议您通过ID访问它。
答案 2 :(得分:0)
对于getElementsByName,它应该工作相同,请注意,它返回的是元素数组,而不是元素数组。
这两个语句对于名称为“ myFrame”和id为“ myFrame”的框架应具有相同的作用:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
...
'user',
...
]