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

我在第 3 行收到“ Uncaught SyntaxError: Unexpected token ILLEGAL ” 。这对你们来说可能很容易,但我刚开始使用 JS 并且像往常一样 - 这是一门全新的语言。

如果它们不同,我可以使用两种建议。

  1. 如何在 <script> 标签之间的 file.php 中使用此代码?
  2. 如何从单独的 file.js 文件中使用此代码?

我知道如何链接.js,不用担心。

作为记录,这是为了在 <head> 中,如果我没记错的话,在它们完全加载之前隐藏一些 html 元素。各位高手,请随时确认,如果有更好的解决方案,请给我一个更好的解决方案,谢谢!

4

2 回答 2

1

在 JavaScript 中,字符串不能分成多行。换行符不是有效的字符串字符。您必须关闭每一行上的字符串,并在下一行继续的每一行之后(或作为上一行的延续的每一行之前添加字符串连接运算符,如下所示:

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

这将摆脱错误,但不会达到隐藏元素的预期效果。如果 HTML 文档已经打开(如果脚本正在执行,它已经打开),则document.write 自动调用 document.open(document.open )将清除页面的内容,包括包含该代码的脚本。您将留下一个空白页。

正如@Chris 所说,您只需在 php 解析上下文之外编写脚本,就可以在 php 脚本的输出中包含脚本标签。IE

?>
<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 帖子可能会有所帮助:

页面过渡 - 避免“闪烁”的方法

于 2015-08-15T01:14:45.800 回答
-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>'
于 2015-08-15T01:00:07.427 回答