2012-03-17 33 views
2

我真的很喜歡SyntaxHighter - 它變成了最正面的代碼。不幸的是,我已經在IE7和IE8中咆哮了一陣令人震驚的JS錯誤,這將阻止我完全使用這個優秀的插件。SyntaxHighlighter和jQuery的IE錯誤 - 「無法獲得屬性'切片'的值:對象爲空或未定義」

這是一個測試用例。我包括

<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或undefined」和我的jQuery無法工作。

從閱讀我理解這可能與XRegExp,SyntaxHighlighter使用的。根據this jQuery bug ticket,在XRegExp 1.5.1中修復了XRegExp中的錯誤。不幸的是,這個修復似乎沒有找到方法來處理SyntaxHighlighter。有關於SyntaxHighlighter的Bitbucket page上的類似錯誤的討論。我嘗試了一個人製作的修改過的XregExp.js和shCore.js文件,但它並沒有解決我的問題。

有沒有其他人碰到過這種東西?否則,我將不得不使用一些其他蹩腳的語法熒光筆!

回答

4

我是有在IE7/8

同樣的問題,我終於通過抓住從GitHub(https://github.com/alexgorbatchev/SyntaxHighlighter)最新版本的插件是更多的最新比到位桶倉庫的固定他們。

+0

非常感謝約翰,這對我也有詭計!結果!我不確定構建是如何工作的,所以我將XRegExp.js與其他SyntaxHighlighter JS文件一起明確包含在內。 – 2012-04-01 18:01:57

相關問題