JavaScript在IE中"意外地调用了方法或属性访问"
2017-11-29 00:00
441 查看
摘要: IE不兼容的问题
在使用Jquery的append方法时,在 IE8 下报错:意外地调用了方法或属性访问
进行定位发现报错的位置为:jQuery的 b.appendChild(a) 方法
1、ie对动态append的内容有要求,需要将一个具有完整意义的html一起append到代码中
检查脚本,发现我append操作的是
2、操作元素类型不匹配
ie下将类型不匹配的值强行添加到dom元素中时会产生该错误,该问题出现的几率较大,我这里的也是这个问题,将
3自定义标签
append中的HTML如果包含有自定义标签,不好意思,也会报错,解决办法,把自定义标签改成,HTML自带的标签。
ie健壮性不强,出错后就导致脚本无法执行下去了,这在其他浏览器是会被忽略掉的,所以往往也难以找到问题
其次就是什么时候报错。这个报错产生在ie6、7、8中,在ie8以上没有报错,坑爹的ie啊,FUCK!!
先说一下为什么会出现这个错误,根本原因就是在ie8以下的浏览器里,操作一个DOM的非法属性时会出现,举例说明下
第一种情况,操作了一个DOM不该有的属性
如果要改变这个dom的值应该是修改它的value属性
但是如果写成了
在ie8以上的浏览器也OK,给你识别纠正了,但是在ie8以下就不行了
第二种情况,标签的闭合上也就是我出错的地方
由于编辑器的自动补全,往往会忽略一些细节上的错误例如为input自动加了闭合标签,如果只操作这个dom的值无影响,但是如果操作下个同级元素就会报错了例如
当debug到test的下一级标签时,便会发现这个dom的nodeName是input而不是p,input操作html属性是不合法的,因此就报错啦。解决方法就是把input的闭合标签干掉
JavaScript在IE中"意外地调用了方法或属性访问"
错误例子:在使用Jquery的append方法时,在 IE8 下报错:意外地调用了方法或属性访问
进行定位发现报错的位置为:jQuery的 b.appendChild(a) 方法
1、ie对动态append的内容有要求,需要将一个具有完整意义的html一起append到代码中
检查脚本,发现我append操作的是
<option>标签,而且是完整的,那原因应该不是这个
2、操作元素类型不匹配
ie下将类型不匹配的值强行添加到dom元素中时会产生该错误,该问题出现的几率较大,我这里的也是这个问题,将
<option>标签强行append到了input上
3自定义标签
append中的HTML如果包含有自定义标签,不好意思,也会报错,解决办法,把自定义标签改成,HTML自带的标签。
ie健壮性不强,出错后就导致脚本无法执行下去了,这在其他浏览器是会被忽略掉的,所以往往也难以找到问题
网上搜集的问题概述
这是一条脚本的报错信息,是我在KISSY中遇到了,报错模块在base.js中,这是KISSY里的一个核心模块。当然在jQuery中也一样会遇到,因为这是dom操作中遇到的bug。初次看到这个bug很无奈,居然是框架里的报错信息不是自己写的代码,完全无从下手。其次就是什么时候报错。这个报错产生在ie6、7、8中,在ie8以上没有报错,坑爹的ie啊,FUCK!!
解决办法
下面直奔主题来说一下解决的办法先说一下为什么会出现这个错误,根本原因就是在ie8以下的浏览器里,操作一个DOM的非法属性时会出现,举例说明下
第一种情况,操作了一个DOM不该有的属性
<input type="text" id="test">
如果要改变这个dom的值应该是修改它的value属性
$('#test').val('hello');
但是如果写成了
$('#test').html('hello');
在ie8以上的浏览器也OK,给你识别纠正了,但是在ie8以下就不行了
第二种情况,标签的闭合上也就是我出错的地方
<input type="text" id="test"></input> <p>hello</p>
由于编辑器的自动补全,往往会忽略一些细节上的错误例如为input自动加了闭合标签,如果只操作这个dom的值无影响,但是如果操作下个同级元素就会报错了例如
$('#test').next().html('hello');
当debug到test的下一级标签时,便会发现这个dom的nodeName是input而不是p,input操作html属性是不合法的,因此就报错啦。解决方法就是把input的闭合标签干掉
相关文章推荐
- JavaScript在IE中“意外地调用了方法或属性访问”
- IE7下jquery报“意外调用了方法和属性访问”错误的解决方案
- ActiveX "意外地调用了方法或属性访问"
- ie意外的调用了方法或属性的访问
- IE 兼容模式下Jquery 出现appendChild 意外地调用了方法或属性访问。
- javascript报错:意外地调用了方法或属性访问
- SCRIPT65535: 意外地调用了方法或属性访问 ie下不兼容 解决
- 开发中“错误: 意外地调用了方法或属性访问。” 和 第一行错误 的IE 两个问题( JQ 进行转义字符 , 分页JS 调用 时参数问题。)
- SCRIPT65535: 意外地调用了方法或属性访问(ie不兼容解决办法)
- SCRIPT65535: 意外地调用了方法或属性访问。ie不兼容
- ie appendChild 意外地调用了方法或属性访问
- 意外地调用了方法或属性访问
- IE中意外地调用了方法或属性访问jquery
- 意外地调用了方法或属性访问
- SCRIPT65535: 意外地调用了方法或属性访问。
- ie8 报错:意外地调用了方法或属性访问
- SCRIPT65535: 意外地调用了方法或属性访问。
- javascript调用COM组件,"错误: 对象不支持此属性或方法"
- js异常:“SCRIPT65535: 意外地调用了方法或属性访问。 ”