我正在使用 Prettify.JS 在我正在开发的网站上显示一些代码。我似乎对脚本标签有一些问题,尤其是“非链接”标签:
<pre>
// Link CSS
<link rel="stylesheet" href="device.css" />
// Link JQuery
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
// Link DeviceJS
<script type="text/javascript" src="device.min.js"></script>
// Initialize DeviceJS
<script>
$(document).ready(function () {
$('selector').devicejs(options);
});
</script>
</pre>
此代码显示以下内容(注意整个脚本标记为红色):
但是,当我在下面做这个小技巧时(在关闭开始脚本标记之前添加一些不可见的 html):
<pre>
// Link CSS
<link rel="stylesheet" href="device.css" />
// Link JQuery
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
// Link DeviceJS
<script type="text/javascript" src="device.min.js"></script>
// Initialize DeviceJS
<script<span style="display:none;"> t</span>>
$(document).ready(function () {
$('selector').devicejs(options);
});
</script>
</pre>
它似乎显示确定:
问题是当我添加多个非链接脚本标签块时,问题又出现了。所以下面的代码:
<pre>
// Link CSS
<link rel="stylesheet" href="device.css" />
// Link JQuery
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
// Link DeviceJS
<script type="text/javascript" src="device.min.js"></script>
// Initialize DeviceJS
<script<span style="display:none;"> t</span>>
$(document).ready(function () {
$('selector').devicejs(options);
});
</script>
<script<span style="display:none;"> t</span>>
$(document).ready(function () {
$('selector').devicejs(options);
});
</script>
</pre>
显示为:
我查看了 Prettify.JS 源代码,在第 1211 行看到以下内容:
['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
我相信这是词法分析器的一部分。
我不是正则表达式忍者,所以我会很感激任何关于如何调整它的帮助,以便 Prettify.JS 可以容纳没有属性的非链接脚本标签。
提前致谢。