Два HTML фрейма с одинаковым именем и форма с целью, установленной на имя фрейма. Как обойти Chrome для нацеливания на самый внутренний фрейм? - PullRequest
0 голосов
/ 07 мая 2020

На странице ниже html есть 2 набора фреймов с похожими именами фреймов. Он также имеет форму «newform», у которой target = «A». Теперь в IE форма нацелена на FRAME - PART 2, а в Chrome она нацелена на FRAME - PART 1. Теперь, когда form.target принимает frameName в String, обеспечивая динамический c путь для выборки кадра то же имя кадра, то есть «А». Как обойти код в Chrome, чтобы указать на КАДР - ЧАСТЬ 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»; // необходимо изменить эту часть, чтобы она указывала на ЧАСТЬ 2

1 Ответ

0 голосов
/ 07 мая 2020

Вы можете запросить имя свойства, чтобы получить все совпадения, а затем получить последнее с помощью:

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

, но только если вы уверены в порядке, в котором они появляются в html.

Я не думаю, что вы можете добиться единообразного поведения только в зависимости от html разметки, поскольку ваша проблема явно вызвана неоднозначным синтаксисом, и вам следует в первую очередь попытаться устранить причину.

...