json.js + jquery 在 ie7下 的 bug

因为jq只有个parseJSON,没有stringify,而在ie7下是没有支持原生window.JSON的,那么最好的选择是老道的json.js来和jq搭配了

<script src='jquery.js'></script>

<script src='json.js'></script>

<div class='a'>nick</div>

<script>

     $(function(){

         alert($(".a").html())

     })

</script>

额,看上去灰常的完美哇,运行下看看,

..........................................................

啊,不勒个是吧,控制台抛出error 该对象不支持该属性,why?

好吧,可以断点调试下,哦,我的ie7是在ie8下选择的ie7的浏览器模式,ie8带有开发者工具的

调试发现在jquery1.7.1的第4098行处

if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
这个  exec 已经 被 置为了 underfined 了 ,, 于是 报错。

但是,看整个代码,除开有而外的加了个json.js 其他的 ,都简单的不能在简单的demo了。那么如果有问题,应该就是
json.js加载后 在 这个特定的浏览器环境下 和 jq.js冲突来吧。

那么换下先后顺序 先加载json.js 然后加载 jquery.js

继续运行,ok了。


那么看来,在 ie7下,至少在 ie8的ie7模式下,先加载jq在加载 json.js 是 会有些问题的

ps:在先加载jq后加载json.js的情况下,如果用id选择器和node选择器 都是 没问题的。单色 选择器中如果有
    带.  的 类选择器才有会这样的情况存在,也就是说 会导致类选择器失灵。

你可能感兴趣的:(jquery)