SCRIPT65535:意外地调用了方法或属性访问

欢迎访文我的博客YangChen’s Blog

本文以这个bug报错信息命名,来阐述下这个问题的解决办法。

问题概述

首先说一下报错问题来自哪里。

这是一条脚本的报错信息,是我在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的闭合标签干掉

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值