IE ошибка с SyntaxHighlighter и jQuery - «Невозможно получить значение свойства« ломтик »: объект нулевой или неопределенный» - PullRequest
2 голосов
/ 18 марта 2012

Я действительно люблю SyntaxHighter - получается шикарный код. К сожалению, я лаял на голени против ужасающей ошибки JS в IE7 и IE8, что помешает мне использовать этот отличный плагин в целом.

Вот тестовый пример. Я в том числе

<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: невозможно получить значение свойства« slice »: объект имеет значение null или undefined», и мой jQuery не работает.

Из прочтения я понимаю, что это может иметь отношение к XRegExp, который использует SyntaxHighlighter. Согласно в этом билете об ошибках jQuery в XRegExp произошла ошибка, которая была исправлена ​​в XRegExp 1.5.1. К сожалению, это исправление, похоже, не нашло свое отражение в SyntaxHighlighter. Обсуждалась аналогичная ошибка на странице Bitbucket SyntaxHighlighter . Я попробовал модифицированные файлы XregExp.js и shCore.js, созданные одним парнем, но это не решило мою проблему.

Кто-нибудь еще сталкивался с такими вещами? В противном случае мне придется использовать какой-нибудь другой дерьмовый подсветщик синтаксиса!

1 Ответ

4 голосов
/ 31 марта 2012

У меня были те же проблемы в IE7 / 8

Я, наконец, исправил их, взяв последнюю версию плагина от GitHub (https://github.com/alexgorbatchev/SyntaxHighlighter), что более актуально, чем хранилище в BitBucket.

...