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

我得到“意外的令牌非法未捕获的SyntaxError”。这对你们来说可能是很容易的,但我只是从JS开始就像往常一样 - 这是一种全新的语言。语法错误适用于网站的“闪烁”修复

我可以使用2个各类咨询,如果它们是不同的..

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

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

为了记录,这是打算在<头>和隐藏一些HTML元素之前,他们完全加载,如果我没有错。 专家,随时确认,或者给我一个更好的解决方案,如果有的话,谢谢!

+0

字符串不能在Javascript中包含新行。 –

+0

谢谢Sverri,事实确实如此。如果页面或这些元素已完全加载,您是否还有任何建议如何将这些元素返回? – AWA

回答

1

在JavaScript中,字符串不能分成多行。新行字符不是有效的字符串字符。你将不得不关闭在每行的字符串,每次持续到下一行(或每一个是前行的延续行,像这样前行后添加字符串连接符:

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

这将消除错误,但它不会达到隐藏元素的预期效果。document.writeautomatically calls document.open()如果HTML文档已被打开(它具有,如果脚本正在执行)document.open将清除内容页面,包括包含该代码的脚本,您将留下一个空白页面

正如@Chris所说,您可以在outp中包含脚本标记只需通过在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 ... />

至于如何处理闪烁问题,这个堆栈溢出文章可能会有所帮助:

Page Transitioning - Ways to Avoid the "flicker"

+0

谢谢!建议的链接有我想要的。我会忘记我打算做的事情。至少我了解了字符串。如果你也知道任何有关PHP,也许你可以看看:http://stackoverflow.com/questions/31988009/orderby-by-multiple-values 它几乎没有任何关注,现在被遗忘.. – AWA

+0

我会讨厌实际发布你的其他问题的答案,因为我几乎不知道WordPress的。你看过这篇文档了吗? [WP_Query](https://codex.wordpress.org/Class_Reference/WP_Query) –

+0

是的,我已经看了这一切。我很好,足以与WP_Query或我的主题的解决方案分开工作,但问题是,我没有足够的技能,以某种方式绑定它们,也就是将当前的解决方案添加多个orderby功能,而不会搞乱它。不过,谢谢你的调查。我想我必须在几天后再次提出要求,在本网站获得20多个视图并不容易,而且视图较少=解决方案的可能性较小。 :P – AWA

-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>'