各位大神帮帮小弟,这么简单的一段JavaScript for循环,为什么总是提示第5行的 "<" 不符合W3C标准呢<script type="text/javascript">
function path() {
var args = arguments;
result = [];
  for(var i = 0; i < args.length; i++)
result.push(args[i].replace('@', '<?php echo $current_path; ?>scripts/'));
  return result
};
SyntaxHighlighter.autoloader.apply(null, path(
  'applescript            @shBrushAppleScript.js',
  'actionscript3 as3      @shBrushAS3.js',
  'xml xhtml xslt html    @shBrushXml.js'
));
SyntaxHighlighter.defaults['quick-code'] = false;
SyntaxHighlighter.all();
</script>

解决方案 »

  1.   

    var args = arguments这句话是什么意思?
      

  2.   

    <script type="text/javascript">
    function path() {
        var args = arguments;
        result = [];

      for(var i = 0; i < args.length; i++)
            result.push(args[i].replace('@', '<?php echo $current_path; ?>scripts/'));
    alert(result[0]);
      return result
    };
     path(
      'applescript            @shBrushAppleScript.js',
      'actionscript3 as3      @shBrushAS3.js',
      'xml xhtml xslt html    @shBrushXml.js')
    </script>
    你单独跑一下这个,明显没报错。
      

  3.   

    function path() {
      var result = [];
      for(var i = 0; i < arguments.length; i++)
            result.push(args[i].replace('@', '<?php echo $current_path; ?>scripts/'));
      return result
    };这样试试
      

  4.   

    跟这个应该是没有关系的,你看我这段代码,更加简单,结果还是报错。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head profile="http://gmpg.org/xfn/11">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
    <title>hello</title>
    </head>
    <body>
    <script type="text/javascript">
    for (i = 0; i <= 5; i++)
    {
    document.write("数字是 " + i)
    document.write("<br />")
    }
    </script>
    </body>
    </html>W3C验证信息如下:
     Line 10, Column 15: character "<" is the first character of a delimiter but occurred as data
    for (i = 0; i <= 5; i++)

    This message may appear in several cases:You tried to include the "<" character in your page: you should escape it as "&lt;"
    You used an unescaped ampersand "&": this may be valid in some contexts, but it is recommended to use "&amp;", which is always safe.
    Another possibility is that you forgot to close quotes in a previous tag.
      

  5.   

    <script type="text/javascript">
    <!--//--><!CDATA[[//><!--
    function path() {
        var args = arguments;
        result = [];
      for(var i = 0; i < args.length; i++)
            result.push(args[i].replace('@', '<?php echo $current_path; ?>scripts/'));
      return result
    };
    SyntaxHighlighter.autoloader.apply(null, path(
      'applescript            @shBrushAppleScript.js',
      'actionscript3 as3      @shBrushAS3.js',
      'xml xhtml xslt html    @shBrushXml.js'
    ));
    SyntaxHighlighter.defaults['quick-code'] = false;
    SyntaxHighlighter.all();
    //--><!]]></script>这样试试~·
      

  6.   

    楼主用什么检验的,根本弄混了。它把JS当作HTML检验的,拿<当作HTL标签的<...> 开始符号了。
      

  7.   

    你这个检验器,要不是没用明白,就是根本只支持对HTML的检验。你把JS连同<script></script>都去掉再检验吧。
      

  8.   

    result.push(args[i].replace('@', '<?php echo $current_path; ?>scripts/'));
    =>
    result.push(args[i].replace('@', '\<?php echo $current_path; ?\>scripts/'));
    试试这样呢
      

  9.   

    楼主应该把js放到单独的文件里,而不是写在页面里。这样就符合w3c了