1 if (document.getElementById) {
2 document.write(
3 '<style type="text/css" media="screen">
4 #element1, .element2 {display:none;}
5 </style>'
6 );
7 }
我得到&#34; 未捕获的SyntaxError:意外的令牌ILLEGAL &#34;在第3行。这对你们来说可能很容易,但我刚开始使用JS并且总是喜欢它 - 它是一种全新的语言。
如果他们不同,我可以使用两种建议。
我知道如何链接.js,不要担心。
为了记录,这是打算在&lt;头&gt;并且如果我没有弄错的话,在它们完全加载之前隐藏一些html元素。 专家,如果有任何问题,请随时确认或给我一个更好的解决方案,谢谢!
答案 0 :(得分:1)
在JavaScript中,字符串不能分成多行。新行字符不是有效的字符串字符。您必须关闭每一行上的字符串,并在下一行继续的每一行之后(或在前一行的延续的每一行之前)添加字符串连接运算符,如下所示:
if (document.getElementById)
{
document.write(
'<style type="text/css" media="screen">' +
'#element1, .element2 {display:none;}'
+ '</style>');
}
这将消除错误,但它不会达到隐藏元素的预期效果。 document.write
automatically calls document.open()如果已经打开了一个HTML文档(如果脚本正在执行,它已经有了。)document.open
将清除页面内容,包括包含该文档的脚本码。您将留下一个空白页面。
正如@Chris所说,只需在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 ... />
至于如何处理闪烁问题的问题,这个Stack Overflow帖子可能会有所帮助: