语法highlighter_3.0.83:theme_tests.html内容中不允许使用DOCTYPE

问题描述

|| 我在语法高亮_3.0.83所提供的theme_tests.html页面上遇到错误,这是我没有早点遇到的。 错误是第一个脚本标签
<script id=\"sample\" type=\"text/plain\">
标记内
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
的内容中不允许DOCTYPE。 这是theme_tests.html页面:
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">
<head>
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
    <title>SyntaxHighlighter Theme Tests</title>
    <script type=\"text/javascript\" src=\"/js/jquery-1.4.2.js\"></script>
</head>

<body>

<div id=\"output\"></div>

<style>
body {
    background: white;
    font-family: Helvetica;
}

.test-wrap {
    width: 100%;
    height: 800px;
    overflow: auto;
    border: none;
}
</style>

<script id=\"sample\" type=\"text/plain\">
    <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
    <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">
    <head>
        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
        <title>SyntaxHighlighter Theme Tests</title>
    </head>

    <body>
        &lt;script>
        /**
         * Looks for a child or parent node which has specified classname.
         * Equivalent to jQuery\'s $(container).find(\".className\")
         * @param {Element} target Target element.
         * @param {String} search Class name or node name to look for.
         * @param {Boolean} reverse If set to true,will go up the node tree instead of down.
         * @return {Element} Returns found child or parent element on null.
         */
        function findElement(target,search,reverse /* optional */)
        {
            if (target == null)
                return null;

            var nodes           = reverse != true ? target.childNodes : [ target.parentNode ],propertyToFind  = { \'#\' : \'id\',\'.\' : \'className\' }[search.substr(0,1)] || \'nodeName\',expectedValue,found
                ;

            // main return of the found node
            if ((target[propertyToFind] || \'\').indexOf(expectedValue) != -1)
                return target;

            return found;
        };
        &lt;/script>

    </body>
    </html>
</script>

<script type=\"text/javascript\">
var themes = [
        [\'#fff\',\'Default\'],[\'#000\',\'Django\'],[\'#fff\',\'Eclipse\'],\'Emacs\'],\'FadeToGrey\'],\'MDUltra\'],\'Midnight\'],\'RDark\']
    ];

$(document).ready(function()
{
    var sample = $(\'#sample\').text().replace(/</g,\'&lt;\');

    $.each(themes,function(index)
    {
        var $iframe = $(\'<iframe class=\"test-wrap\" src=\"about:blank\" />\'),background = this[0],themeName = this[1]
            ;

        $(\'#output\')
            .append(\'\'
                + \'<h1>\'
                    + \'<a href=\"#theme\' + (index + 1) + \'\">next</a> \'
                    + \'<a name=\"theme\' + index + \'\">\'
                        + themeName
                    + \'</a>\'
                + \'</h1>\'
            )
            .append($iframe)
            ;

        $iframe.ready(function()
        {
            var doc = $iframe[0].contentDocument;
            $iframe.css(\'background\',background);

            doc.write(\'\'
                + \'<scr\' + \'ipt type=\"text/javascript\" src=\"/sh/scripts/XRegExp.js\"></scr\' + \'ipt>\'
                + \'<scr\' + \'ipt type=\"text/javascript\" src=\"/sh/scripts/shCore.js\"></scr\' + \'ipt>\'
                + \'<scr\' + \'ipt type=\"text/javascript\" src=\"/sh/scripts/shBrushXml.js\"></scr\' + \'ipt>\'
                + \'<scr\' + \'ipt type=\"text/javascript\" src=\"/sh/scripts/shBrushJScript.js\"></scr\' + \'ipt>\'
                + \'<link type=\"text/css\" rel=\"stylesheet\" href=\"/sh/styles/shCore\' + themeName + \'.css\"/>\'
                + \'<pre type=\"syntaxhighlighter\" class=\"brush: js; html-script: true; highlight: [5,20]\" title=\"This is SyntaxHighlighter theme \' + themeName + \' in action!\">\'
                    + sample
                + \'</pre>\'
                + \'<pre type=\"syntaxhighlighter\" class=\"brush: js; html-script: true; collapse: true\">\'
                    + sample
                + \'</pre>\'
                + \'<scr\' + \'ipt type=\"text/javascript\">\'
                    + \'SyntaxHighlighter.highlight();\'
                + \'</scr\' + \'ipt>\'
                );
            doc.close();
        });
    });

    $(\'#output a[name]:first\').attr(\'name\',\'top\');
    $(\'#output a[href]:last\').attr(\'href\',\'#top\').html(\'top\');
});
</script>

</body>
</html>
我的Java Web应用程序中的网页页面在chrome中可以正常渲染,但在Firefox 4上却不能。 我记得我的应用程序中的同一页面以前曾经在两种浏览器上都能正常工作。 自从我看到我的应用程序正确渲染同一页面以来,对系统所做的唯一更改是: 我在eclipse 3.5 IDE中添加了jquerywtp1.10插件。 将firefox更新为firefox 4版本。 有人可以帮助我了解如何使同一网页正确显示在mozilla firefox 4上吗? 这是我在第29行出现错误的地方:http://programatori.evonet.ro/images/1308360109285/doctype.jpg 可以在以下位置找到theme_tests.html:https://bitbucket.org/alexg/syntaxhighlighter/src/a8771a7fc81d/tests/theme_tests.html 有人可以启发我如何消除此错误吗?     

解决方法

        您已将该文档声明为XHTML严格文档。但是,文档结构违反了文档类型规则。在文档中嵌套另一个“ 3”是非法的。同样,将带有未转义XML实体的JS代码放入XHTML严格文档中也是非法的。通过http://hsivonen.iki.fi/doctype了解有关文档类型的信息,并根据http://validator.w3.org验证文档。 第一步是将嵌套的XHTML文档包装在
<![CDATA[
块中,然后将所有JS移到其自己的
.js
文件中。另外,在
<head>
之外具有
type
属性的
<style>
也是非法的。 这个问题与JSP无关。这只是基础(X)HTML知识。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...