Chrome игнорирует аргумент target тега <a> при программном "нажатии" на ссылку
У меня есть проект, реализованный с помощью Django, Dojo и JS. Я бьюсь головой об эту проблему всю неделю и не могу найти в интернете никаких подсказок, в чем может быть проблема. Надеюсь, что кто-то здесь сталкивался с этой проблемой и сможет пролить свет на проблему.
У меня есть неупорядоченный список <ul>, похожий на следующий:
`````
<ul>
<li><a target="displayArea" id="pre-select" href="foo.html>Foo</a></li>
<li><a target="displayArea" href="bar.html">Bar</a></li>
<li><a target="displayArea" href="baz.html">Baz</a></li>
</ul>
```
в другом месте кода находится целевой iframe:
```
<iframe style="border: none;" name="displayArea" id="displayArea" width="100%" height="95%" title="Report Area"></iframe>
```
Когда я навожу курсор и нажимаю на "Foo", все работает как ожидалось, "Foo" отображается в iframe, показанном выше. Однако, если я выполню следующий скрипт, который находится сразу после </ul> в коде:
<script>
window.document.getElementById('pre-select').click();
</script>
"Foo" не отображается в iframe, вместо этого он ненадолго появляется в рамке окна хоста, а затем исчезает. Я не уверен, почему есть разница в нажатии непосредственно на ссылку, как она появляется в <ul> или в выполнении <скрипта>, который делает "клик" программно.
Любое понимание было бы очень признательно...
Как указано в описании проблемы, я ожидал, что ссылка появится в целевом iframe, когда скрипт:
<script>
window.document.getElementById('pre-select').click();
</script>
выполняется, но не отображается в iframe. Если на ссылку нажать мышью, она работает, как и ожидалось.
Я смог добиться того, что мне было нужно, добавив onload в HTML следующим образом:
<body onload="document.getElemenById('pre-select').click()">
Это делает именно то, что мне нужно, и может быть легко изменено, когда пользователи неизбежно изменят свое мнение :)
Спасибо epascarello и markfila за помощь, указавшую мне правильное направление.