Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Почему JavaScript оборачивается CDATA и не выполняется? (https://javascript.ru/forum/events/72034-pochemu-javascript-oborachivaetsya-cdata-i-ne-vypolnyaetsya.html)

artuha 02.01.2018 13:32

Почему JavaScript оборачивается CDATA и не выполняется?
 
Добрый день!

В шапке шаблона простенький скрипт

<head>
<script type="text/javascript" src="/themes/default-bootstrap/js/jquery.maskedinput.js"></script>
    <script type="text/javascript">
         $('#div').mask('+7(999) 999-9999');
    </script>
</head>

На сайте скрипт не выполняется, при запуске его через консоль все работает. Ошибок нет. jQuery подключен. Пробовал также размещать код в отдельном файле и перед </body>:

<head>
     <script type="text/javascript" src="/themes/default-bootstrap/js/jquery.maskedinput.js"></script>
</head>
<body>
     <div id="div"></div>
     <script type="text/javascript">
          $('#div').mask('+7(999) 999-9999');
     </script>
</body>

При анализе Chrome DevTools скрипт вписан одной строчкой и выглядет так:

<head>
     <script type="text/javascript">/* <![CDATA[ */;$('#div').mask('+7(999) 999-9999');/* ]]> */</script>
</head>

В чем может быть причина? Может ли CDATA влиять на работу скрипта и почему он автоматически навешивается?

laimas 02.01.2018 14:14

Если из шапки то:

$(function() { //DOM готов
     $('#div').mask('+7(999) 999-9999');
});


либо в конце страницы

$('#div').mask('+7(999) 999-9999');

artuha 02.01.2018 15:52

Цитата:

Сообщение от laimas (Сообщение 474151)
Если из шапки то:

$(function() { //DOM готов
     $('#div').mask('+7(999) 999-9999');
});


либо в конце страницы

$('#div').mask('+7(999) 999-9999');

Без изменений

laimas 02.01.2018 16:21

Код показанный в начале не может выполнится, так как во время его запуска элемента $('#div') не существует, DOM не сформирован. На другие возможные ошибки укажет отладчик.


Часовой пояс GMT +3, время: 03:06.