innerHTML 引发“未知的运行时错误”

作者:快乐笛子 来源:快乐笛子博客 时间:2008-04-09 13:06:00 

今天碰到这个极度郁闷的报错,搞了大半下午,才发现是ie的问题,忍不住大骂。例子是这样的:页面中有多处能出发菜单,并且菜单出现在触发点的旁边,为保证页面上不能同时显示两个以上的菜单,我的做法是隐藏一个div,用作菜单容器。

每个触发点根据实际情况在菜单容器里innerHTML各种html代码,再用appechChild方法把菜单续加到(其实就是剪切)到触发点的旁边。代码如下:

 <script type="text/javascript">
function product(obj){
 var menu = document.getElementById("abc");
 menu.style.display = "";
 menu.innerHTML = "产品的菜单";
 obj.parentNode.appendChild(menu);
}
function news(obj){  
 var menu = document.getElementById("abc");
 menu.style.display = "";
 menu.innerHTML = "新闻的菜单";
 obj.parentNode.appendChild(menu);
}
</script>
<div id="abc" style="border:1px solid #000; background:#eee; position:absolute; display:none; height:200px; font-size:12px; padding:1em"></div>
<p><input type="button" value="产品" onclick="product(this)"></p>
<p style="margin-left:130px"><input type="button" value="新闻" onclick="news(this)"></p>

上面两个函数仅仅2个中文字符不同,但触发其中任一个函数,再触发第二个,就会报“未知的运行时错误”,相当诡异。左看右看,都没看出什么破绽,RPWT?No way!即刻询问谷歌,答曰“innerHTML 对下面的对象只读: COL,COLGROUP,FRAMESET,HTML,STYLE,TABLE,TBODY,TFOOT,THEAD,TITLE,TR”,谷歌似乎也不太清楚,真晕,这个让人费神的破IE。谷歌虽然没有爽快地告诉我答案,却也才知道原来ie下还有innerHTML属性为只读的元素,瀑布汗~~~,根据这一启发,修改了几次页面的标签,有了一个惊人的发现,只要把触发点父节点p元素改用div元素,程序立马正常!hoho~~~,原来divp除了语义不同,其作为文档对象(xml节点)的属性也不同。无语~

标签:innerhtml,错误,js
0
投稿

猜你喜欢

  • asp数组使用特法

    2009-05-11 12:43:00
  • MySQL表设计优化与索引 (五)

    2010-10-25 20:24:00
  • SQL语句练习实例之四 找出促销活动中销售额最高的职员

    2011-11-03 16:47:03
  • 如何用OleDbDataAdapter来对数据库进行操作?

    2010-06-12 12:56:00
  • CSS的书写顺序规范

    2008-06-12 13:51:00
  • 另类解读SQL Server中的DateTime数据类型

    2009-01-06 11:22:00
  • Access 2007简易入门手册

    2008-12-04 13:12:00
  • asp压缩access数据库(带密码)方法

    2007-09-06 19:48:00
  • 基于display:table的CSS布局

    2008-10-30 10:38:00
  • 停止密码输入掩饰?[译]

    2009-07-22 18:44:00
  • 细化解析:SQL Server 2000 的各种版本

    2009-02-05 15:41:00
  • 小白讲座:在win下mysql备份恢复命令概括

    2009-09-05 09:43:00
  • Win7的IIS7中ASP获得的系统日期格式为斜杠的解决办法

    2012-12-04 19:57:33
  • asp 实现的冒泡排序程序

    2011-03-25 11:13:00
  • Ajax+asp应用实例 注册模块,表单提交

    2011-04-08 10:47:00
  • WEB开发中合理选择图片格式

    2011-09-22 20:32:06
  • 解决mysql不能插入中文Incorrect string value

    2009-07-30 09:02:00
  • SQLserver中字符串查找功能patindex和charindex的区别

    2012-06-06 20:20:42
  • 设置mysql最大连接数的方法

    2010-12-03 16:00:00
  • 用CSS实现柱状图(Bar Graph)的方法(一)—基于列表元素的柱状图

    2008-05-26 13:03:00
  • asp之家 网络编程 m.aspxhome.com