在下面的html页面中,它有2个具有相似框架名的框架集,同时还有一个目标为 "A "的表单 "newform"。它还有一个名为 "newform "的表单,它的目标是 "A"。现在,在IE中,表单的目标是FRAME - PART 2,而在Chrome中,它的目标是FRAME - PART 1.现在,由于form.target使用String中的frameName,因此为框架提供动态路径会获取相同的框架名,即 "A"。如何绕过Chrome中的代码指向FRAME - PART 2?
<html>
<head>
<script>
function test(){
document.newform.target = “A”;
document.newform.submit();
}
</script>
</head>
<frameset>
<frame name=”A”></frame> //--------------PART 1
<frame name=”B”></frame>
</frameset>
<iframe>
<frameset>
<frame name=”A”></frame> //--------------PART 2
<frame name=”B”></frame>
<form name=”newform”></form>
</frameset>
</iframe>
** 当我将表单目标标记为 "A "时,它指的是第一个框架。我的问题是,我如何修改下面的代码,使其指向PART2中的那个。
document.newform.target = "A"; /需要修改这部分指向PART 2。
你可以通过查询属性名来获取所有匹配的属性,然后用...获取最后一个。
framesA = document.querySelectorAll('[name="A"]');
frameA = framesA[framesA.length - 1]
但前提是你必须确定它们在html中出现的顺序。
我不认为你只能根据html标记来获得一致的行为,因为你的问题显然是由模棱两可的语法引起的,你应该主要寻找修复原因。