私は本当にSyntaxHighterが大好きです。残念ながら、IE7 と IE8 で恐ろしい JS エラーが発生したため、この優れたプラグインを完全に使用できなくなりました。
これがテストケースです。含めてます
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
IE7 と IE8 が HTML5 要素を認識できるようにヘッダーに追加します。
テスト ページの本文には、いくつかのナビゲーション アイテムがあります。
<nav id="top-nav" class="f16 clearfix">
<ul id="nav-menu">
<li><a href="index.htm">Home</a></li>
<li><a href="branding.htm">Branding</a>
<ul class="nav-submenu">
<li><a href="logos1">Logos 1</a></li>
<li><a href="logos2">Logos 2</a></li>
<li><a href="logos3">Logos 3</a></li>
</ul>
</li>
</ul>
</nav>
これらの JQuery と SyntaxHighlighter のインクルードと、SyntaxHighlighter を初期化し、イベント リスナーをナビゲーション メニューに追加しようとするこの小さなスクリプト以外には何もありません。
<script src="extra/syntax-highlighter/shCore.js"></script>
<script src="extra/syntax-highlighter/shBrushJScript.js"></script>
<script src="extra/syntax-highlighter/shBrushXml.js"></script>
<script>
SyntaxHighlighter.all();
$(document).ready(function(){
$('#nav-menu').on('mouseenter', function () {
$(this).children('.nav-submenu').fadeIn('fast');
})
})
</script>
このページを IE7 および IE8 で表示すると、「SCRIPT5007: プロパティ 'スライス' の値を取得できません: オブジェクトが null または未定義です」というエラーが表示され、jQuery が機能しません。
周りを読んで、これは SyntaxHighlighter が使用する XRegExp と関係があるかもしれないことを理解しています。この jQuery バグ チケットによると、XRegExp 1.5.1 で修正された XRegExp にいくつかのエラーがありました。残念ながら、この修正は SyntaxHighlighter には反映されていないようです。SyntaxHighlighter のBitbucket ページで、同様のバグに関する議論がありました。ある人が作成した修正した XregExp.js および shCore.js ファイルを試しましたが、問題は解決しませんでした。
他の誰かがこの種のものに出くわしましたか? そうしないと、他のくだらない構文ハイライターを使用する必要があります。