javascript — синтаксическая ошибка в JS, предназначенная для веб-сайта «перепрошивка»; фиксировать

  1  if (document.getElementById) {
2  document.write(
3  '<style type="text/css" media="screen">
4  #element1, .element2 {display:none;}
5  </style>'
6  );
7  }

Я получил «Uncaught SyntaxError: Неожиданный токен ILLEGAL«на строка 3. Это, наверное, очень легко для вас, ребята, но я только начал с JS и, как всегда, — это совершенно новый язык.

Я мог бы использовать 2 вида советов, если они разные ..

  1. Как использовать этот код в файле .php между < скрипт> теги?
  2. Как использовать этот код из отдельного файла file.js?

Я знаю, как связать .js, не беспокойся об этом.

Для записи, это предназначено для < head> и скрыть некоторые элементы HTML, прежде чем они будут полностью загружены, если я не ошибаюсь. Эксперты, не стесняйтесь, чтобы подтвердить это или дать мне лучшее решение, если есть, спасибо!

-2

Решение

В JavaScript строки не могут быть разбиты на несколько строк. Символ новой строки не является допустимым символом строки. Вам нужно будет закрыть строку в каждой строке и добавить оператор конкатенации строк после каждой строки, которая продолжается на следующей строке (или перед каждой строкой, которая является продолжением предыдущей строки, например так:

if (document.getElementById)
{
document.write(
'<style type="text/css" media="screen">' +
'#element1, .element2 {display:none;}'
+ '</style>');
}

Это избавит от ошибки, но не даст желаемого эффекта сокрытия элементов. document.write автоматически вызывает document.open () если HTML-документ уже был открыт (что он имеет, если скрипт выполняется.) document.open уничтожит содержимое страницы, включая скрипт, содержащий этот код. Вы останетесь с пустой страницей.

Как говорит @Chris, вы можете включить теги script в выходные данные php-скрипта, просто написав скрипт вне контекста разбора php. то есть

?>
<head>
<!-- other stuff -->
<script type="text/javascript">// type="text/javascript" is only needed for browser versions that do not support HTML5
// place code here
</script>
<!-- other stuff -->
</head>
<?php

С другой стороны, если вы хотите включить отдельный внешний файл JavaScript, замените этот тег сценария в приведенном выше фрагменте кода на

<script src="[absolute or relative path to script]" type="text/javascript">
</script>

Обратите внимание, что теги сценария не являются самозакрывающимися, поэтому, даже если этот тег сценария не имеет содержимого, вы не можете использовать синтаксис самозакрывающегося тега, как в <script ... />

Что касается проблемы того, как решить проблему мерцания, этот пост переполнения стека может быть полезным:

Переход страницы — способы избежать "мерцать"

1

Другие решения

Я не эксперт по php, но этот сайт говорит, что это ваш основной синтаксис для встроенного php.
http://php.net/manual/en/language.basic-syntax.phpmode.php

<p>This is going to be ignored by PHP and displayed by the browser.</p>
<?php echo 'While this is going to be parsed.'; ?>
<p>This will also be ignored by PHP and displayed by the browser.</p>

Кроме того, похоже, что для этого тега вам, возможно, понадобится избежать нескольких вещей.

'<style type=\"text/css\" media=\"screen\">
#element1, .element2 {display:none;}
</style>'
-1

По вопросам рекламы [email protected]