注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发AJAX → 文章内容

在BEA WEBLOGIC PORTAL中进行AJAX编程,第1部分

作者:佚名 来源:不详 发布时间:2007-12-10 22:48:17

  更新DOM节点

  Mozilla和IE之间最令人恼火的区别就是Web页面中对DOM(Document Object Model,文档对象模型)的处理。大多数函数的工作方式是一样的(至少在DOM Level 2上),但是仍然有很多值得注意的地方。下面给出两个例子。

innerHtml与innerText的使用

  当使用新的动态内容更新<div>标签时,IE用户有两个选择:可以更新节点的innerText或innerHTML。二者的区别很细微,但是却能在信息的显示方面造成很大的差别,尤其是当要显示的文本是XML格式或者包含HTML实体(比如尖括号或&符号)时。使用innerHTML时假定内容与标签是一起放入的(不管内容是什么)。假设我们试着把以下文本放入一个节点中:

var txt = <b>This is a test</b>
document.getElementById('mydivtext').innerText = txt;
document.getElementById('mydivhtml').innerHTML = txt;

  <div id="mydivhtml">部分在浏览器中看起来如下:

This is a test

  <div id="mydivtext">部分看起来则是下面这样:

<b>This is a test</b>

  基本上,innerText节点对输入字符串进行转义,这样显示在用户面前的就是内容原来的样子。但是Mozilla在DOM节点上不支持innerText属性,所以更好的方法是用户亲自对文本进行转义,并始终使用innerHTML。Sarissa有一个帮助器函数用于实现这一项功能:

document.getElementById('mydivtext').innerHTML =
Sarissa.escape("<b>This is a test</b>")

  我们将得到同样的结果,如下:

document.getElementById('mydivtext').innerText =
"<b>This is a test</b>")
在门户中使用独有名称

  当某个门户页面由WebLogic Portal(或任何门户)进行解析时,每个portlet均作为完整的Web页面放在HTML文档中,包括<body>标签(有时甚至包括<html>标签)。因此,如果在每个portlet中始终以相同的ID来命名<div>标签(理论上来说,这似乎是使编程标准化的一种良好方法),那么将获得不正确的结果。考虑如果有两个ID为“result_data”的元素,那么解析后的门户页面将会是什么样子。

// Outer portal shell
<html>
// First portlet
...
<div id="result_data"></div>
...
// Second portlet
...
<div id="result_data"></div>
...
</html>

  现在,进行一次如下的调用:


更多内容请看PCdog.com--Ajax技术专题
上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页


  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved