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).