Mam taką sytuację. Jest sobie pewna strona, do kodu której nie mam dostępu. Jedyne co mogę zrobić to dodać do niej jeden skrypt js'owy w head. Dla uproszczenia załóżmy, że wygląda to tak.
<html>
<head>
...
<script src="external-site-url"></script>
</head>
<body>
...
</body>
</html>
Mój skrypt będzie pobierany z innej domeny niż działa strona. Skrypt ten musi pobrać jeden plik css, jeden js i opcjonalnie jQuery jeżeli nie ma.
Jak mogę zrobić coś takiego, tak aby w trakcie wykonywania tego skryptu (tzn w trakcie pobierania tych plików z poziomu skryptu) HTML przestał być parsowany? To znaczy chcę osiągnąć sytuację taką, że mam zapewnione, że wszystko zostanie pobrane przed eventem document ready.
Udało mi się to zrobić tylko przez XMLHttpRequest i flagę "false" w parametrze, która mówi o tym, że request jest synchroniczny i działa to wtedy dobrze, ale niestety nie podoba mi się warning w konsoli, który mówi, że to jest deprecated.
Po co coś takiego chce robić? Skrypt ma na celu modyfikację domyślnego scrollbara na stronie i jeżeli css'y i js'y pobierają się async to bardzo często ich pobieranie kończy się już po document ready. A więc user przez chwilę widzi domyślny scrollbar i nie jest to pożądane :) A niestety nie mogę nic więcej zmieniać w kodzie strony, poza dodaniem takiego skryptu w dowolnym miejscu w head.