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 вида советов, если они разные ..
Я знаю, как связать .js, не беспокойся об этом.
Для записи, это предназначено для < head> и скрыть некоторые элементы HTML, прежде чем они будут полностью загружены, если я не ошибаюсь. Эксперты, не стесняйтесь, чтобы подтвердить это или дать мне лучшее решение, если есть, спасибо!
В 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 ... />
Что касается проблемы того, как решить проблему мерцания, этот пост переполнения стека может быть полезным:
Я не эксперт по 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>'