有时候需要用 JavaScript 得到某个 Node 下面的第一个或者最后一个子节点。在 IE 下面实现起来就很简单,直接用 firstChild 或者 lastChild 就可以了,但是 Firefox 却不行,因为 Firefox 会把无意义的空格和回车也算成一个文本节点。所以 Firefox 要实现的话必须先用 getElementsByTagName 得到某个 TagName 的所有节点。然后在节点数组里面选取就是了,这种方法在 IE 下面也是有效果的
,浏览器内置支持的的 firstChild 和 lastChild 基本算是废了,没什么大用处了。
但是如果不知道要取得哪个 TagName 的话怎么办? 其实也很简单,直接遍历节点的 childNodes,然后判断 nodeType,如果是 1 表示是一个 HTML 节点,如果是 3 表示一个文本节点。
另外需要注意一点的是 DOM 是树结构,具体的代码就不写了。
不知道为什么,可能我的思维不是正统程序员的思维吧,感觉写 Firefox 下操作 DOM 的 JS 远没有 IE 下来的方便。真希望所有浏览器都能实现同一个基础 ajax 平台,就像 prototype 和 jQuery 一样,那样多方便啊。
个人希望以后网站的发展趋势是 RIA + SiteMap ,哈哈
由于我是 WEB 程序员,所以一些规范只适用于 WEB 开发的情况。
目前想到的就这些,以后想到再补,很多新手都容易犯这些错误。如果你也有一些心得我没有写出来,欢迎留言,呵呵。
FCKeditor 2.5 千盼万唤终于出来了,新版本兼容 Internet Explorer 5.5+,Firefox 1.5+,Opera 9.50+,Safari 3.0+,Camino 1.0+,Netscape 7.1+,通用性更强了,不过体积也更夸张了,JS 文件竟然达到了 250K 左右,对于网速慢的朋友简直是个噩梦。精简起来也更麻烦了。要达到最好的精简效果,FCKeditor 就无法输出标准格式的 XHTML 了,正在考虑如何精简,2.4.3 我精简到了90K 左右,2.5 估计最多精简到 150K。要往下精简有些困难了。后台的编辑器 JS 多大无所谓。但是前台评论的必须要达到最优精简,要不就利用 AJAX 延迟加载 FCKeditor。头疼啊。。。。。
FCKeditor 精简优化后我会放出代码的,毕竟修改别人的么,呵呵,藏私不好,至于代码高亮功能,是用 .NET 组件还是 Javascript 呢?也需要考虑。做个通用性强的BLOG不容易啊,要考虑的方面太多了。