欢迎光临

木子屋

标题: 实现Web页面内容动态改变的dhtml操作

作者: dnawo

日期: 2007-01-25 12:59 AM

分类: 脚本语言

内容: IE的DHTML对象提供了四个可读写的属性来动态操作页面元素的内容：innerText、 outerText、 innerHTML和outerHTML，它们的意义分别为：
innerHTML 设置或获取位于对象起始和结束标签内的 HTML
outerHTML 设置或获取对象及其内容的 HTML 形式
innerText 设置或获取位于对象起始和结束标签内的文本
outerText 设置或获取对象及其内容的文本
需注意两点：
1.其中innerText,outerText属性的值是作为普通文本呈现的，即使它含有HTML标签也如实反应出来；而innerHTML, outerHTML呈现的是经HTML引擎解析后文本，它可以反应属性中HTML标签的表现效果。
2.对对象的outerText，outerHTML属性赋值（即写操作）会删除该对象。
以上四个属性的赋值操作只是替换原对象的文本内容，想要在页面中指定元素相关位置新增文本内容，需采用insertAdjacentHTML和insertAdjacentText方法。形式如下：
object.insertAdjacentText(sWhere, sText)
object.insertAdjacentHTML(sWhere, sText)
其中 sWhere 表示插入的文本相对于html标签的位置，有如下四个预设值：
beforeBegin，afterBegin，beforeEnd，afterEnd
使用中需注意如下几点：
1.这两种方法必须在整个文档装载完成之后才能使用，否则将出错。
2.InsertAdjacentText只能插入普通文本，InsertAdjacentHTML插入html格式的文本
3.用InsertAdjacentHTML插入脚本，必须在script元素中使用defer属性，否则脚本执行将出现运行期错误
4.InsertAdjacentHTML插入html元素后，all以及其他可能的元素集合将自动更新以反应动态变化。如页面后续元素的sourceIndex 属性将改变。
5.当赋予InsertHTML/outerHTML属性无效的HTML标签，该方法可能出现运行时错。如以下代码将出错：
复制内容到剪贴板 程序代码<BODY>
<p id=pdiv></p>
<SCRIPT LANGUAGE="javascript">
pdiv.innerHTML = "<p>hello</p>"
</SCRIPT>
</BODY>

此外页面内容动态操作还需要注意如下一些细节：
1.只有文档BODY内显示的内容能被以上属性和方法动态改变，BODY对象的内容能被动态操作，但BODY对象本身无法被替换。
2.以上属性和方式不能操作空标签(没有内容的html标签)，如input,img。
3.对于table对象而言，只有td（innerHTML/innerText）和table（outerHMTL/outerText）对象可以用某些属性来替换或插入内容；而其他table对象，如tr、tbody不能用这些属性来改变内容。

+ 查看当前日志评论 (1)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.195 ms

返回

标题: 实现Web页面内容动态改变的dhtml操作

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.195 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.211 ms

返回