据我看这里边没有任何错误的!这只是一个定义的过程而已民,又不是执行,即使是执行错误,那么只有一种可能性:
那就是传入html变量中含有'字符,而这个字符因与原来的字符相冲突,可能会在浏览器中报错!你在IE6中试着将原来的'字符或"字符全部换成编码或者直接去掉试一下!
未结束字符常量往往是这样的语句会出现:
var s = "sgfgsfgsdgs;
因为这里边只有一个"定界符,与后来必然不配对,所以才会出现未结束字符常量错误!
在script上加上charset=utf-8或gb2312试试,可能是网页编码(和网页的meta设置或者用户浏览器设置、系统默认编码)和js段内编码不一样引起的。
你这个可以改装成
var m =new Array();
m[0]=function(html){
this.$("msg_content").innerHTML=HTML;
//注意看了,$("msg_content")首先这个是什么 ?
然后你要扩展属性,首先上一级至少得存在吧。
this.$("msg_content")都不存在 何来的 this.$("msg_content").innerHTML
你可以写 this.innerHTML=html这样肯定没问题。
我觉得你根本没有理解好js的原理,就一味得想写出复杂的代码来。你这个代码想表达什么意思 ?
一个m类,里面有3个方法,第一个方法接受一个参数,第二个第三个方法去改变id为'msg_box'的属性? 你不觉得让人看不懂又不好理解,还容易出错?$('msg_box')这个是什么,jquery?又不太像,$("#")加#才是ID选择器。 有时候不要追求代码看起来是写的很牛B。其实啥也不是,根据实际的问题,写出最简单的代码。这才是王道。
}
对jquery的支持,从IE7开始的。之前的版本,兼容性不好。
IE有个漏洞,得在代码中补上,具体的百度一下,我也不知道