- 浏览: 147648 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
liaozhi_ITOYO:
...
ibatis 学习笔记(一) 批量处理 存储过程 -
boy_scarecrow:
不错,借鉴了!
ibatis 学习笔记(一) 批量处理 存储过程 -
qingyushan:
羡慕啊
假如我是JAVA开发人员 -
salever:
不错,貌似少一点超时设置
Java Tcp Socket聊天系统模型(主要为了学习线程) -
zhaotao_king:
不错!~
假如我是JAVA开发人员
[size=medium]
地址:http://blog.163.com/yuang_yu_ping/blog/static/46932876200982252236783/
http://directwebremoting.org/dwr/browser/util/escapeHtml.html
地址:http://blog.163.com/yuang_yu_ping/blog/static/46932876200982252236783/
http://directwebremoting.org/dwr/browser/util/escapeHtml.html
目录列表: 1. $() 2. DWRUtil.getText(id) 3. DWRUtil.getValue(id) 4. DWRUtil.setValue(id, value) 5. DWRUtil.getValues() 6. DWRUtil.setValues() 7. DWRUtil.addOptions and DWRUtil.removeAllOptions 8. DWRUtil.addRows and DWRUtil.removeAllRows 9. DWRUtil.onReturn 10. DWRUtil.toDescriptiveString 11. DWRUtil.useLoadingMessage 12. 修补浏览器事件 util.js包含了一些工具函数来帮助你用javascript数据(例如从服务器返回的数据)来更新你的web页面。 你可以在DWR以外使用它,因为它不依赖于DWR的其他部分。 4个基本的操作页面的函数:getValue[s]()和setValue[s]()可以操作大部分HTML元素除了table,list和image。getText()可以操作select list。 要修改table可以用addRows()和removeAllRows()。要修改列表(select列表和ul,ol列表)可以用addOptions()和removeAllOptions()。 还有一些其他功能不是DWRUtil的一部分。但它们也很有用,它们可以用来解决一些小问题,但是它们不是对于所有任都通用的。 1、$() $() 函数(它是合法的Javascript名字) 是从Protoype偷来的主意。大略上的讲: $ = document.getElementById。 因为在Ajax程序中,你会需要写很多这样的语句,所以使用 $() 会更简洁。 通过指定的id来查找当前HTML文档中的元素,如果传递给它多个参数,它会返回找到的元素的数组。所有非String类型的参数会被原封不动的返回。这个函数的灵感来至于prototype库,但是它可以在更多的浏览器上运行。 从技术角度来讲他在IE5.0中是不能使用的,因为它使用了Array.push,尽管如此通常它只是用来同engine.js一起工作。如果你不想要engine.js并且在IE5.0中使用,那么你最好为Array.push找个替代品。 2、DWRUtil.getText(id) getText(id)和getValue(id)很相似。它是为select列表设计的。你可能需要取得显示的文字,而不是当前选项的值。 例子:getahead.ltd.uk/dwr/browser/util/gettext 3、DWRUtil.getValue(id) DWRUtil.getValue(id)是 setValue()对应的"读版本"。它可以从HTML元素中取出其中的值,而你不用管这个元素是select列表还是一个div。 这个函数能操作大多数HTML元素包括select(获取当前选项的值而不是文字)、input元素(包括textarea)、div和span。 4、DWRUtil.setValue(id, value) DWRUtil.setValue(id, value)根据第一个参数中指定的id找到相应元素,并根据第二个参数改变其中的值。 这个函数能操作大多数HTML元素包括select(设置当前选项的值而不是文字)、input元素(包括textarea)、div和span。 5、DWRUtil.getValues() getValues()和getValue()非常相似,除了输入的是包含name/value对的javascript对象。name是HTML元素的ID,value会被更改为这些ID对象元素的内容。这个函数不会返回对象,它只更改传递给它的值。 【基于Form的getValues()】 从DWR1.1开始getValues()可以传入一个HTML元素(一个DOM对象或者id字符串),然后从它生成一个reply对象。例子:getahead.ltd.uk/dwr/browser/util/getvalues 6、DWRUtil.setValues() setValues()和setValue()非常相似,除了输入的是包含name/value对的javascript对象。name是HTML元素的ID,value是你想要设置给相应的元素的值。 7、DWRUtil.addOptions and DWRUtil.removeAllOptions 【生成列表】 DWR的一个常遇到的任务就是根据选项填充选择列表。下面的例子就是根据输入填充列表。 下面将介绍 DWRUtil.addOptions() 的几种是用方法。 如果你希望在你更新了select以后,它仍然保持运来的选择,你要像下面这样做: var sel = DWRUtil.getValue(id); DWRUtil.removeAllOptions(id); DWRUtil.addOptions(id, ...); DWRUtil.setValue(id, sel);如果你想加入一个初始的"Please select..." 选项那么你可以直接加入下面的语句: DWRUtil.addOptions(id, \["Please select ..."]);然后再下面紧接着加入你真正的选项数据。 【DWRUtil.addOptions有5种模式】 简单数组: DWRUtil.addOptions(selectid, array) 会创建一堆option,每个option的文字和值都是数组元素中的值。 简单对象数组 (指定text): DWRUtil.addOptions(selectid, data, prop) 用每个数组元素创造一个option,option的值和文字都是在prop中指定的对象的属性。 高级对象数组 (指定text和value值): DWRUtil.addOptions(selectid, array, valueprop, textprop) 用每个数组元素创造一个option,option的值是对象的valueprop属性,option的文字是对象的textprop属性。 对象: DWRUtil.addOptions(selectid, map, reverse)用每个属性创建一个option。对象属性名用来作为option的值,对象属性值用来作为属性的文字,这听上去有些不对。但是事实上却是正确的方式。如果reverse参数被设置为true,那么对象属性值用来作为选项的值。 对象的Map: DWRUtil.addOptions(selectid, map, valueprop, textprop) 用map中的每一个对象创建一个option。用对象的valueprop属性做为option的value,用对象的textprop属性做为 option的文字。 ol 或 ul 列表: DWRUtil.addOptions(ulid, array) 用数组中的元素创建一堆li元素,他们的innerHTML是数组元素中的值。这种模式可以用来创建ul和ol列表。 例子:getahead.ltd.uk/dwr/browser/lists 8、DWRUtil.addRows and DWRUtil.removeAllRows 【生成Table】 DWR通过这两个函数来帮你操作table: DWRUtil.addRows() 和 DWRUtil.removeAllRows() 。这个函数的第一个参数都是table、tbody、thead、tfoot的id。一般来说最好使用tbody,因为这样可以保持你的header和 footer行不变,并且可以防止Internet Explorer的bug。 【DWRUtil.removeAllRows()】 语法: DWRUtil.removeAllRows(id); 描述: 通过id删除table中所有行。 参数: id: table元素的id(最好是tbody元素的id) 【DWRUtil.addRows()】 语法: DWRUtil.addRows(id, array, cellfuncs, [options]); 描述: 向指定id的table元素添加行。它使用数组中的每一个元素在table中创建一行。然后用cellfuncs数组中的没有函数创建一个列。单元格是依次用cellfunc根据没有数组中的元素创建出来的。 DWR1.1开始,addRows()也可以用对象做为数据。如果你用一个对象代替一个数组来创建单元格,这个对象会被传递给cell函数。 你可以写一些像这样的伪代码: for each member in array for each function in cellfuncs create cell from cellfunc(array[i]) 参数: id: table元素的id(最好是tbody元素的id) array: 数组(DWR1.1以后可以是对象),做为更新表格数据。 cellfuncs: 函数数组,从传递过来的行数据中提取单元格数据。 options: 一个包含选项的对象(见下面) 高级选项: rowCreator: 一个用来创建行的函数(例如,你希望tr加个css). 默认是返回一个document.createElement("tr") cellCreator: 一个用来创建单元格的函数(例如,用th代替td). 默认返回一个document.createElement("td") rowData: the element value from the array (the same for all cells in a row) rowIndex: the key (if map) or index (if array) from the collection rowNum: The row number counting from 0 in this section (so if you are using tbody, it counts rows in the tbody and not the whole table) data: The 'computed' data value for the cell (cellCreators only) cellNum: The cell number that we are altering counting from 0 (cellCreators only 例子:getahead.ltd.uk/dwr/browser/tables 【动态编辑表格(Dynamically Editing a Table)】 例子:getahead.org/dwr/examples/table 9、DWRUtil.onReturn 当按下return键时,得到通知。 当表单中有input元素,触发return键会导致表单被提交。当使用Ajax时,这往往不是你想要的。而通常你需要的触发一些Javscript。 不幸的是不同的浏览器处理这个事件的方式不一样。所以DWRUtil.onReturn修复了这个差异。如果你需要一个同表单元素中按回车相同的特性,你可以用这样代码实现: js 代码 1. <input type="text" onkeypress="DWRUtil.onReturn(event, submitFunction)"> 2. <input type="button" onclick="submitFunction()"> 你也可以使用onkeypress事件或者onkeydown事件,他们做同样的事情。 一般来说DWR不是一个Javascript类库,所以它应该试图满足这个需求。不管怎样,这是在使用Ajax过程中一个很有用函数。 【onSubmit】 这个函数的工作原理是onSubmit()事件只存在于form元素上。 例子:getahead.ltd.uk/dwr/browser/util/onreturn 10、DWRUtil.toDescriptiveString DWRUtil.toDescriptiveString()函数比默认的toString()更好。第一个参数是要调试的对象,第二个参数是可选的,用来指定内容深入的层次: 0: 单行调试 1: 多行调试,但不深入到子对象。 2: 多行调试,深入到第二层子对象 以此类推。一般调试到第二级是最佳的。 还有第三个参数,定义初始缩进。这个函数不应该被用于调式程序之外,因为以后可能会有变化。 11、DWRUtil.useLoadingMessage 设置一个Gmail风格的加载信息。所有演示页面 ● dynamic text getahead.ltd.uk/dwr/examples/text ● selection lists getahead.ltd.uk/dwr/examples/lists ● live tables getahead.ltd.uk/dwr/examples/table ● live forms getahead.ltd.uk/dwr/examples/form ● dynamic validation getahead.ltd.uk/dwr/examples/validation ● address entry getahead.ltd.uk/dwr/examples/address 都使用了GMail风格的加载消息。 这个方法将来可能被废弃,因为这个实现实在太专断了。为什么是红色,为什么在右上角,等等。唯一的真正答案就是:抄袭GMail。这里的建议是以本页面中的代码为模板,根据你的需求自定义。 你必须在页面加载以后调用这个方法(例如,不要在onload()事件触发之前调用),因为它要创建一个隐藏的div来容纳消息。 最简单的做法时在onload事件中调用DWRUtil.useLoadingMessage,像这样: js 代码 1. function init() { 2. DWRUtil.useLoadingMessage(); 3. } 可能有些情况下你是不能容易的编辑header和body标签(如果你在使用CMS,这很正常),在这样的情况下你可以这样做: js 代码 1. function init() { 2. DWRUtil.useLoadingMessage(); 3. } 4. 5. if (window.addEventListener) { 6. window.addEventListener("load", init, false); 7. } 8. else if (window.attachEvent) { 9. window.attachEvent("onload", init); 10. } 11. else { 12. window.onload = init; 13. } 下面这些是这个函数的代码,它对于你要实现自己的加载消息很有用。这个函数的主要内容是动态创建一个div(id是disabledZone)来容纳消息。重要的代码是当远程调用时使它显示和隐藏: js 代码 1. DWREngine.setPreHook(function() { 2. $('disabledZone').style.visibility = 'visible'; 3. }); 4. DWREngine.setPostHook(function() { 5. $('disabledZone').style.visibility = 'hidden'; 6. }); 7. This is fairly simple and makes it quite easy to implement your own "loading" message. 8. 9. function useLoadingMessage(message) { 10. var loadingMessage; 11. if (message) loadingMessage = message; 12. else loadingMessage = "Loading"; 13. 14. DWREngine.setPreHook(function() { 15. var disabledZone = $('disabledZone'); 16. if (!disabledZone) { 17. disabledZone = document.createElement('div'); 18. disabledZone.setAttribute('id', 'disabledZone'); 19. disabledZone.style.position = "absolute"; 20. disabledZone.style.zIndex = "1000"; 21. disabledZone.style.left = "0px"; 22. disabledZone.style.top = "0px"; 23. disabledZone.style.width = "100%"; 24. disabledZone.style.height = "100%"; 25. document.body.appendChild(disabledZone); 26. var messageZone = document.createElement('div'); 27. messageZone.setAttribute('id', 'messageZone'); 28. messageZone.style.position = "absolute"; 29. messageZone.style.top = "0px"; 30. messageZone.style.right = "0px"; 31. messageZone.style.background = "red"; 32. messageZone.style.color = "white"; 33. messageZone.style.fontFamily = "Arial,Helvetica,sans-serif"; 34. messageZone.style.padding = "4px"; 35. disabledZone.appendChild(messageZone); 36. var text = document.createTextNode(loadingMessage); 37. messageZone.appendChild(text); 38. } 39. else { 40. $('messageZone').innerHTML = loadingMessage; 41. disabledZone.style.visibility = 'visible'; 42. } 43. }); 44. 45. DWREngine.setPostHook(function() { 46. $('disabledZone').style.visibility = 'hidden'; 47. }); 48. } 下面的做法能简单的使用有加载消息图片: js 代码 1. function useLoadingImage(imageSrc) { 2. var loadingImage; 3. if (imageSrc) loadingImage = imageSrc; 4. else loadingImage = "ajax-loader.gif"; 5. DWREngine.setPreHook(function() { 6. var disabledImageZone = $('disabledImageZone'); 7. if (!disabledImageZone) { 8. disabledImageZone = document.createElement('div'); 9. disabledImageZone.setAttribute('id', 'disabledImageZone'); 10. disabledImageZone.style.position = "absolute"; 11. disabledImageZone.style.zIndex = "1000"; 12. disabledImageZone.style.left = "0px"; 13. disabledImageZone.style.top = "0px"; 14. disabledImageZone.style.width = "100%"; 15. disabledImageZone.style.height = "100%"; 16. var imageZone = document.createElement('img'); 17. imageZone.setAttribute('id','imageZone'); 18. imageZone.setAttribute('src',imageSrc); 19. imageZone.style.position = "absolute"; 20. imageZone.style.top = "0px"; 21. imageZone.style.right = "0px"; 22. disabledImageZone.appendChild(imageZone); 23. document.body.appendChild(disabledImageZone); 24. } 25. else { 26. $('imageZone').src = imageSrc; 27. disabledImageZone.style.visibility = 'visible'; 28. } 29. }); 30. DWREngine.setPostHook(function() { 31. $('disabledImageZone').style.visibility = 'hidden'; 32. }); 33. } 然后你就可以这样使用:useLoadingImage("images/loader.gif"); 12、修补浏览器事件 如果你创建了一个DOM元素,然后用addAttribute在这个元素上创建了一个事件,那么他们不能被正常的触发。你可以使用下面的脚本来遍历一个DOM树,并重新为他们绑定事件,这样他们就能正常的触发了。 把'click'改成你希望的事件。 js 代码 1. DWREngine._fixExplorerEvents = function(obj) { 2. for (var i = 0; i < obj.childNodes.length; i++) { 3. var childObj = obj.childNodes [i]; 4. if (childObj.nodeValue == null) { 5. var onclickHandler = childObj.getAttribute('onclick'); 6. if (onclickHandler != null) { 7. childObj.removeAttribute('onclick'); 8. // If using prototype: 9. // Event.observe(childObj, 'click', new Function(onclickHandler)); 10. // Otherwise (but watch out for memory leaks): 11. if (element.attachEvent) { 12. element.attachEvent("onclick", onclickHandler); 13. } 14. else { 15. element.addEventListener("click", onclickHandler, useCapture); 16. } 17. } 18. DWREngine._fixExplorerEvents(childObj); 19. } 20. } 21. }[/size]
发表评论
-
迅雷 图片切换
2010-01-23 10:47 1201转http://www.iteye.com/topic/576 ... -
js变量作为URL参数 中文乱码解决方法
2010-01-18 17:44 22861--前台页面 var uuid = encodeURI(e ... -
javascript获取select的值全解
2009-12-22 16:34 1231获取显示的汉字 document.getElementB ... -
dwr 实现二级联动 js
2009-12-03 20:03 2011//省市联动 var c_cigy = ''; //记录 ... -
全选调用的JS函数
2009-12-02 20:09 1227function selectall() { //获 ... -
Ajax 模拟动态列表
2009-11-02 10:00 1060three.html <!DOCTYPE HTML PU ... -
JavaScript 修改表单样式和readOnly属性
2009-10-29 12:57 1545function change() { v ... -
AJAX - 服务器端的脚本
2009-10-23 18:10 935现在,我们要创建可显示当前服务器时间的脚本。 respons ... -
AJAX - 请求服务器
2009-10-23 18:05 824AJAX - 向服务器发送一个请求 要想把请求发送到服务器,我 ... -
AJAX - XMLHttpRequest 对象
2009-10-23 17:54 711在向服务器发送数据之前,我们有必要解释一下 XMLHttpRe ... -
AJAX - 浏览器支持
2009-10-23 17:48 965AJAX - 浏览器支持 AJAX 的 ... -
输入框要求用JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合,还要求不能超过6个汉字,还要验证汉字和字母,数字的组合
2009-09-27 08:59 2619<input name="username&q ...
相关推荐
在DWR框架中,`util.js`是一个核心组件,主要负责提供各种实用工具函数,便于开发者在前端进行操作。本文将深入探讨`util.js`的特性和功能,并结合提供的`dwr_util_api.docx`文档,详细介绍其使用方法。 1. **DWR...
总结来说,DWR提供了一个强大的工具,使得Web开发者可以通过JavaScript轻松地调用服务器端的Java方法,而`util.js` 和 `engine.js` 分别作为工具库和核心引擎,是实现这一功能的关键组件。在实际开发中,理解和掌握...
`util.js`是DWR的工具库,包含了各种实用函数,帮助开发者更好地管理和优化使用DWR的应用程序。这些函数涵盖了数组操作、字符串处理、日期时间格式化、DOM操作等多个方面,增强了JavaScript的基本功能,提高了代码的...
DWR util.js 是一个JavaScript工具库,提供了一些有用的函数,用于在客户端页面调用。下面是DWR util.js中的主要功能: 1. $()函数:获取页面参数值 该函数用于获取页面参数值,例如:var name = $("name");获取名...
`util.js` 和 `engine.js` 是DWR的核心JavaScript库。`util.js` 提供了一系列实用工具函数,用于辅助JavaScript编程,例如类型检查、对象遍历等。`engine.js` 是DWR引擎的核心,负责处理与服务器的通信,包括请求的...
"util.js"是DWR的实用工具脚本文件,它提供了一些辅助函数和通用功能,帮助开发者更好地管理和操作DWR的API。例如,它可能包含一些用于数据验证、对象序列化或调试的函数,这些函数在编写DWR应用时非常有用。 DWR的...
这个压缩包包含的是DWR的实例、相关的jar包以及两个重要的JavaScript文件——`engine.js`和`util.js`,这些都是学习DWR的关键组件。 1. **DWR基础概念**: DWR的核心功能是提供一种方式,使得客户端JavaScript可以...
总结来说,这个压缩包包含的JavaScript文件是构建一个基于DWR的Web应用的重要组成部分,其中searchaAuthor.js负责特定业务逻辑,engine.js提供与服务器交互的基础框架,而util.js则包含各种辅助工具函数。...
这个过程中,`util.js` 文件起到了关键作用,它是DWR提供的一系列工具函数的集合,用于简化DWR的使用和页面操作。 `util.js` 文件中的方法可能包括但不限于: 1. `createDWRInterface`: 创建DWR接口,使JavaScript...
而Util.js作为DWR框架中的一部分,提供了丰富的工具函数,用于处理DOM操作、数据获取与设置、以及表单元素的控制等,大大提升了开发效率。 ### 1. 取元素操作符:$()/byId() `$()` 和 `byId()` 是DWR中用于获取...
在DWR中,util.js是一个重要的辅助库,提供了多种方便的JavaScript函数,简化了DOM操作和数据处理。以下是对DWR util.js中一些关键功能的详细说明: 1. **`$("id")`**:这个函数类似于JavaScript的`document....
Direct Web Remoting (DWR) 是一个开源的Java库,它允许在JavaScript和服务器端Java之间进行双向通信,实现Web应用程序的Ajax功能。DWR使得动态网页能够与后台服务器进行实时交互,无需刷新整个页面,提高了用户体验...
- **dwr.util.js**:DWR提供的实用工具函数,如数组操作、DOM操作等。 - **其他*.js文件**:可能包含DWR的自定义扩展或示例代码。 学习和使用这个压缩包,开发者可以快速掌握DWR的使用,从而构建出具有实时交互性的...
<script type="text/javascript" src="/dwr/util.js"> <script type="text/javascript"> DWRUtil.useLoadingMessage("正在处理..."); MyService.doSomething(param1, param2, function(response) { // 处理...
在某些情况下,DWR的实用工具类`dwr.util`(通常简称为`dwr.utls`)可能会与jQuery产生冲突,因为两者都使用`$`作为其主要的函数调用符号。这种冲突可能会影响到代码的正常执行,导致功能失效或产生未预期的行为。 ...
- `util.js`: 提供了一系列实用工具函数,用于增强JavaScript功能,如类型检查、字符串处理等,这些函数对DWR的运行是必要的。 - `browser.js`: 这个文件包含了针对不同浏览器的兼容性处理,确保DWR在各种环境下都...
`util.js`是DWR的实用工具库,包含了各种辅助函数,这些函数在处理数据、DOM操作、事件处理等方面非常有用。这个文件提供了许多JavaScript的增强功能,使得在客户端进行操作更加便捷。例如,`util.js`可能包含了...
**标题:“DWR Jar包下载”** DWR (Direct Web Remoting) 是一个开源Java库,它允许在浏览器和服务器之间进行实时、双向通信。DWR使得JavaScript可以直接调用Java方法,就像是本地对象一样,极大地简化了Web应用...