在IE9中加载JQueryUI 1.10.3时出错

时间:2013-09-30 13:13:27

标签: javascript jquery-ui

我正在从谷歌的cdn加载jQuery UI。它适用于我必须支持的每个浏览器(IE8 +),IE9除外。我在这一行的jQuery UI代码中的页面加载时遇到一个奇怪的错误(未公开版本中的第249行):

$.support.selectstart = "onselectstart" in document.createElement( "div" );

错误是:

SCRIPT438: Object doesn't support property or method 'createElement'

包含它的代码是

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.js">
</script>

我查看了调试器中的'document'对象,它似乎定义了createElement(如预期的那样)。

1 个答案:

答案 0 :(得分:3)

我终于发现了这个问题。我不知道为什么会这样,但由于某种原因,IE9中存在一个范围问题文档并不是您期望的文档。

行为可以在这里看到:http://jsfiddle.net/esn2v/8/

with(block = document.createElement('div')) {
    with(detaildiv = document.createElement('div')) {
        alert('test');
    }
}

除了IE9之外,它在任何浏览器中都能正常工作。如果在IE9中打开它,则不会发生警报,​​您可以查看控制台以查看有关文档的错误。

如果您只是包含jquery和jquery UI,就不会发生这种情况:http://jsfiddle.net/uRFz5/

<script src=
"//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

我的应用程序必须只是一场导致此问题发生的完美风暴。