#javascript #html
Вопрос:
У меня странная проблема с отображением элементов на странице в хорошем порядке. Я хочу показать в начале document.write
с приветствием, затем попросить имя prompt
и в конце показать результат на странице. Каким-то образом, прежде чем что-либо появится, отображается приглашение. Почему это происходит? Это для школьных целей 🙂
document.write(`Hello `); const text = prompt(`what's your name?`); document.write(`${text}, nice to meet you :)`);
Если что-то непонятно, не стесняйтесь спрашивать 🙂
Комментарии:
1. После написания «Привет» отображается приглашение, что работает не так, как вы ожидаете?
2. Остерегайтесь «Привет, нуль, приятно познакомиться».
3. @php_nub_qq только когда вы используете mozilla в качестве браузера, повторите попытку, но в chrome 🙂
4. Вы не получите этого из-за того, как браузер отображает контент. И скоро вы узнаете, что document.write-плохое решение.
5. Как я уже сказал, это только для школьных целей, мы делаем упражнения, и нам интересно, сможем ли мы это как-то сделать
Ответ №1:
Как обсуждалось в комментариях, это работает по-разному в разных браузерах, и я подозреваю, что это связано с тем, как браузеры выполняют свои циклы рендеринга.
Это выходит за document.write
рамки того , что если вы попытаетесь добавить элемент в документ, вы будете наблюдать точно такое же поведение.
Я попытался заставить chrome выполнять рендеринг между write/append
вызовами, но он решительно отказался. Я предполагаю, что это какая-то предполагаемая оптимизация с их стороны, не уверен, но если вы действительно настаиваете на этом, вам придется использовать дополнительный контекст, и это не будет работать document.write
, так как он перезапишет все, что уже есть в документе.