两个同名的HTML框架,一个表单的目标设置为框架名。如何在Chrome浏览器中绕过最里面的框架?

问题描述 投票:0回答:1

在下面的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。

javascript html forms frame
1个回答
0
投票

你可以通过查询属性名来获取所有匹配的属性,然后用...获取最后一个。

framesA = document.querySelectorAll('[name="A"]');
frameA = framesA[framesA.length - 1]

但前提是你必须确定它们在html中出现的顺序。

我不认为你只能根据html标记来获得一致的行为,因为你的问题显然是由模棱两可的语法引起的,你应该主要寻找修复原因。

© www.soinside.com 2019 - 2024. All rights reserved.