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 за помощь, указавшую мне правильное направление.

Вернуться на верх