如何解决语法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>
<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;
};
</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,\'<\');
$.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知识。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。