Pracuję nad tym od kilku godzin i jestem na tym etapie, kiedy wydaje mi się, że, być może, staram się wykonać coś jest niewykonalne. Wszelkie porady i zrozumienie, na pewno są mile widziane!
Opcja użycia, na który ja się orientuję, wymaga przerwania DOM-analizy przeglądarki, zanim miał okazję narysować <body>
element. Dla osiągnięcia tego celu użyłem ten jednoliniowy tekst jako pierwszego skryptu, spowodowanego w moim <head>
element:
document.replaceChild(document.createElement('html'), document.children[0]);
To skutecznie uniemożliwia wywołanie przeglądarki każdych kolejnych scenariuszy i <body>
element pozostaje nie визуализированным. Jednak, jeśli układ zawiera onload
atrybut na <body>
element, funkcja lub kod nadal jest wywoływana przez przeglądarkę.
Ponieważ kontekst, który przechwytuje analizy DOM, położony jest w <head>
Nie mogę użyć document.body.removeEventListener()
aby usunąć detektor zdarzeń, bo body
elementu jeszcze nie istnieje. Instalacja window.onload
Dla null
nie ma żadnego efektu, a próba przechwycenia ustawienie window.onload
z pomocą Object.defineProperty(window, 'onload', {...})
. W każdym przypadku, onload
funkcja lub operatorzy nadal są wywoływane.
Aby ostrzec oczywiste pytanie o to, dlaczego nie mogę po prostu uniknąć stosowania <body onload="...">
opcja użycia jest dla programisty, więc staram się stworzyć nieprzewidziane okoliczności określonych bezwzględnych warunków. Jeśli to nie da się zrobić, to nie zabija mój projekt, ale bardzo chciałbym wiedzieć, dlaczego to nie da się zrobić.
Z góry dziękuję!