Jak użyć funkcji focus() na elemencie z konsoli Google Chrome

0

Poniższy kod dowidzi, że funkcja fucus() działa poprawnie kiedy jest wywołana z pliku.

<div tabindex="1">tabindex 1</div>
<div tabindex="2">tabindex 2</div>
<div tabindex="3">tabindex 3</div>
<div tabindex="0">tabindex 0</div>
<div tabindex="-1">tabindex -1</div>
document.querySelectorAll("body > div").forEach(elem =>
{
  elem.addEventListener("focus", function()
  {
    console.log(this);
  });
  
  elem.focus();
});
div:focus{border: 1px solid black;}

Chciałbym się dowiedzieć dlaczego ta funkcja nie działa tak samo gdy jest wywołana z konsoli w przeglądarce Google Chrome.
Na podstawie powyższego przykładu taki kod:
document.querySelector("body > div").focus();
wywołany z konsoli nie da skupienia dla pierwszego div'a, ale jakby go wstawić pod kodem js zamieszczonym wyżej to by zadziałał. Dlaczego focus() nie działa wywołany z konsoli?


Na marginesie:
zamierzam wstrzyknąć kod javascript, który ingeruje w DOM historii Chrome. Ten skrypt ma działać na chrome://history.
Skutek jest taki, że nie da się wstawić takiego skryptu za pomocą rozszerzenia, lub nawet za pomocą testów w Selenium, które działałyby na podstawie realnej historii użytkownika.
Jedyne co wymyśliłem to konsola (f12).

0

No pomyśl. Jeżeli otwierasz stronę i włączasz konsole to najeżdżając na jakiś element zabierasz mu focus. Tak samo jak w konsoli najeżdżasz na element to kierujesz focus na element na stronie jak coś w nim piszesz to trzymasz focus na tym właśnie elemencie. dlatego nigdy ci to nie zadziala. Konsola to to samo co strona html :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1