1

我正在从谷歌的 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>

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

4

1 回答 1

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>

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

于 2013-10-23T15:45:39.377 回答