dojo IE 中的“对象不支持此操作”

Posted

技术标签:

【中文标题】dojo IE 中的“对象不支持此操作”【英文标题】:dojo "Object does not support this action " in IE 【发布时间】:2012-03-28 15:34:00 【问题描述】:

我在 IE 中使用 Dojo EnhancedGrid 遇到了一个奇怪的问题。

我使用 AJAX 从服务器获取的网格数据,然后在 load() 方法中我试图遍历网格中的所有元素。在这里,事情在 IE 中变得疯狂。这是尝试获取元素的方法:

                var grid = dijit.byId(prefix + "mySuperGrid");

                for (var i = 0 , l = grid.getTotalRowCount(); i < l; i++) 
                                item = grid.getItem(i);
                

在第一次迭代中我得到 ​​p>

对象不支持此操作

在 FireFox 中,同样的代码可以完美运行。

【问题讨论】:

请问为什么在加载网格后要遍历所有项目?我问的原因是因为这样做很昂贵。通常,数据存储上的格式函数或 onItem() 是对项目进行自定义处理的地方 我浏览所有元素的原因是我有一个需要在桌子上点亮的项目,我正在努力寻找它。在加载网格之前获得的项目,所以之后我需要遍历网格中的所有项目并找到应该选择的行。 【参考方案1】:

好的,我找到了坏人。问题是 IE 需要 var 关键字在变量名之前,而 firefox 不需要。所以代码应该是:

            var grid = dijit.byId(prefix + "mySuperGrid");

            for (var i = 0 , l = grid.getTotalRowCount(); i < l; i++) 
                           var item = grid.getItem(i);
            

【讨论】:

以上是关于dojo IE 中的“对象不支持此操作”的主要内容,如果未能解决你的问题,请参考以下文章

element-ui ie浏览器报错Error in v-on handler: “TypeError: 对象不支持此操作“

Chrome 中的 dispatchEvent,但 IE11 中没有

Google地图无法使用IE11(sharepoint 2010)

dojo dgrid 或 slick Grid 中的批量更新支持不可用

dojo ie9 destoryRecursive on form

dojo dgrid 中的小部件