Раздел вопрос-ответ Зачём пишут так scr" + "ipt ?

Зачём пишут так? Неоднакратоно такое видел в исходном коде. Почему бы не вставить скрипт сразу в тело? И зачем тут конкатенация строк?

<body>
<h1>Caption</h1>
<script type="text/javascript">
    document.write('<scr' + 'ipt>bla-bla-any-code</scr' + 'ipt>');
</script>

Таких примеров море, см. реальные сайты из того что быстро нарыл:

  • view-source:http://001en.com/
  • view-source:http://00001proxy.unlimitaccess4u.info/
  • view-source:http://www.0000park.com/

 

share
 
Это в исходном html коде страниц, кэш тут совсем не причём
root 2 года назад
 
почисти кэш
– anonymous 3 года назад
 
Это где такое?
ggg 3 года назад

1 ответ

Это сделано для того, чтобы javascript код выполнился как можно позже, а страница загрузилась как можно раньше.

Т.е. сначала загружается вся страница. Затем начинает выполняться javascript, который после выполнения операции конкатенации делает document.write. Только после document.write - начинает выполняться код bla-bla-any-code внутри <script>.

Как по мне, то спорный способ, я бы так не делал. Это css блокирует отображение страницы, пока не загрузится, а javascript как по мне лучше всего вставлять либо в <head> либо прямо перед закрытием </body> и не использовать такие стрёмные способы. И вот доказательство:

<html>
<head>
     <script type="text/javascript">
        alert("first");
    </script>
</head>
<body>
    <div class="box"></div>
    <script type="text/javascript">
        document.write('<scr' + 'ipt>alert("second");</scr' + 'ipt>');
    </script>
    <script type="text/javascript">
        alert("third");
    </script>
</body>
</html>

http://jsfiddle.net/ft9e69bL/1/

Добавить комментарий
    как минимум 5 символов

    icon Вход в систему

    зарегистрироваться
    НОВЫЕ ПОЛЬЗОВАТЕЛИ