【问题标题】:IE bug with SyntaxHighlighter and jQuery - "Unable to get value of the property 'slice': object is null or undefined"带有 SyntaxHighlighter 和 jQuery 的 IE 错误 - “无法获取属性 'slice' 的值:对象为空或未定义”
【发布时间】:2012-03-17 20:05:36
【问题描述】:

我真的很喜欢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:无法获取属性 'slice' 的值:对象为 null 或未定义”,并且我的 jQuery 无法工作。

通过阅读,我了解到这可能与 SyntaxHighlighter 使用的 XRegExp 有关。根据this jQuery bug ticket 的说法,XRegExp 中存在一些错误,该错误已在 XRegExp 1.5.1 中修复。不幸的是,这个修复似乎没有找到 SyntaxHighlighter 的方法。在 SyntaxHighlighter 的 Bitbucket page 上讨论了类似的错误。我尝试了一个人制作的修改后的 XregExp.js 和 shCore.js 文件,但它并没有解决我的问题。

有没有其他人遇到过这种事情?否则我将不得不使用其他一些糟糕的语法荧光笔!

【问题讨论】:

    标签: javascript jquery html syntaxhighlighter xregexp


    【解决方案1】:

    我在 IE7/8 中遇到了同样的问题

    我最终通过从 GitHub (https://github.com/alexgorbatchev/SyntaxHighlighter) 获取插件的最新版本来修复它们,它比 BitBucket 上的存储库更新。

    【讨论】:

    • 非常感谢约翰,这对我也有用!结果!我不确定构建是如何工作的,所以我将 XRegExp.js 与其他 SyntaxHighlighter JS 文件一起明确包含在内。
    猜你喜欢
    • 2011-09-30
    • 2023-03-25
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多