﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-JAVAEE-随笔分类-JavaScript</title><link>http://www.blogjava.net/hhcto/category/23588.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 17 May 2008 13:04:35 GMT</lastBuildDate><pubDate>Sat, 17 May 2008 13:04:35 GMT</pubDate><ttl>60</ttl><item><title>模式窗口showModalDialog详解 (转载)</title><link>http://www.blogjava.net/hhcto/archive/2007/09/12/144436.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Wed, 12 Sep 2007 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2007/09/12/144436.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/144436.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2007/09/12/144436.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/144436.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/144436.html</trackback:ping><description><![CDATA[模式窗口showModalDialog详解&nbsp;<br />
showModalDialog()、showModelessDialog()方法使用详解&nbsp;<br />
<br />
Javascript有许多内建的方法来产生对话框，如：window.alert(),&nbsp;window.confirm(),window.prompt().等。&nbsp;然而IE提供更多的方法支持对话框。如：&nbsp;<br />
<br />
　　showModalDialog()&nbsp;(IE&nbsp;4+&nbsp;支持)&nbsp;<br />
　　showModelessDialog()&nbsp;(IE&nbsp;5+&nbsp;支持)&nbsp;<br />
<br />
<br />
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框，由于是对话框，因此它并没有一般用window.open()打开的窗口的所有属性。&nbsp;<br />
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。&nbsp;<br />
<br />
当我们用showModelessDialog()打开窗口时，不必用window.close()去关闭它，当以非模态方式［IE5］打开时，&nbsp;打开对话框的窗口仍可以进行其他的操作，即对话框不总是最上面的焦点，当打开它的窗口ＵＲＬ改变时，它自动关闭。而模态［ＩＥ４］方式的对话框始终有焦点（焦点不可移走，直到它关闭）。模态对话框和打开它的窗口相联系，因此我们打开另外的窗口时，他们的链接关系依然保存，并且隐藏在活动窗口的下面。&nbsp;<br />
<br />
使用方法如下：&nbsp;<br />
vReturnValue&nbsp;=&nbsp;window.showModalDialog(sURL&nbsp;[,&nbsp;vArguments]&nbsp;[,&nbsp;sFeatures])&nbsp;<br />
vReturnValue&nbsp;=&nbsp;window.showModelessDialog(sURL&nbsp;[,&nbsp;vArguments]&nbsp;[,&nbsp;sFeatures])&nbsp;<br />
参数说明：&nbsp;<br />
sURL&nbsp;<br />
必选参数，类型：字符串。用来指定对话框要显示的文档的URL。&nbsp;<br />
vArguments&nbsp;<br />
可选参数，类型：变体。用来向对话框传递参数。传递的参数类型不限，包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。&nbsp;<br />
sFeatures&nbsp;<br />
可选参数，类型：字符串。用来描述对话框的外观等信息，可以使用以下的一个或几个，用分号&#8220;;&#8221;隔开。&nbsp;<br />
dialogHeight&nbsp;对话框高度，不小于１００px，ＩＥ４中dialogHeight&nbsp;和&nbsp;dialogWidth&nbsp;默认的单位是em，而ＩＥ５中是px，为方便其见，在定义modal方式的对话框时，用px做单位。&nbsp;<br />
　　dialogWidth:&nbsp;对话框宽度。&nbsp;<br />
　　dialogLeft:&nbsp;距离桌面左的距离。&nbsp;<br />
　　dialogTop:&nbsp;离桌面上的距离。&nbsp;<br />
　　center:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}：窗口是否居中，默认yes，但仍可以指定高度和宽度。&nbsp;<br />
　　help:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}：是否显示帮助按钮，默认yes。&nbsp;<br />
　　resizable:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}&nbsp;［ＩＥ５＋］：是否可被改变大小。默认no。&nbsp;<br />
　　status:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}&nbsp;［IE5+］：是否显示状态栏。默认为yes[&nbsp;Modeless]或no[Modal]。&nbsp;<br />
scroll:{&nbsp;yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;|&nbsp;on&nbsp;|&nbsp;off&nbsp;}：指明对话框是否显示滚动条。默认为yes。&nbsp;<br />
<br />
还有几个属性是用在HTA中的，在一般的网页中一般不使用。&nbsp;<br />
dialogHide:{&nbsp;yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;|&nbsp;on&nbsp;|&nbsp;off&nbsp;}：在打印或者打印预览时对话框是否隐藏。默认为no。&nbsp;<br />
edge:{&nbsp;sunken&nbsp;|&nbsp;raised&nbsp;}：指明对话框的边框样式。默认为raised。&nbsp;<br />
unadorned:{&nbsp;yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;|&nbsp;on&nbsp;|&nbsp;off&nbsp;}：默认为no。&nbsp;<br />
<br />
传入参数：&nbsp;<br />
要想对话框传递参数，是通过vArguments来进行传递的。类型不限制，对于字符串类型，最大为4096个字符。也可以传递对象，例如：&nbsp;<br />
<br />
test1.htm&nbsp;<br />
====================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
var&nbsp;mxh1&nbsp;=&nbsp;new&nbsp;Array("mxh","net_lover","孟子E章")&nbsp;<br />
var&nbsp;mxh2&nbsp;=&nbsp;window.open("about:blank","window_mxh")&nbsp;<br />
//&nbsp;向对话框传递数组&nbsp;<br />
window.showModalDialog("test2.htm",mxh1)&nbsp;<br />
//&nbsp;向对话框传递window对象&nbsp;<br />
window.showModalDialog("test3.htm",mxh2)&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
test2.htm&nbsp;<br />
====================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
var&nbsp;a&nbsp;=&nbsp;window.dialogArguments&nbsp;<br />
alert("您传递的参数为："&nbsp;+&nbsp;a)&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
test3.htm&nbsp;<br />
====================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
var&nbsp;a&nbsp;=&nbsp;window.dialogArguments&nbsp;<br />
alert("您传递的参数为window对象，名称："&nbsp;+&nbsp;a.name)&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
可以通过window.returnValue向打开对话框的窗口返回信息，当然也可以是对象。例如：&nbsp;<br />
<br />
test4.htm&nbsp;<br />
===================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
var&nbsp;a&nbsp;=&nbsp;window.showModalDialog("test5.htm")&nbsp;<br />
for(i=0;i&lt;a.length;i++)&nbsp;alert(a[i])&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
test5.htm&nbsp;<br />
===================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
function&nbsp;sendTo()&nbsp;<br />
{&nbsp;<br />
var&nbsp;a=new&nbsp;Array("a","b")&nbsp;<br />
window.returnValue&nbsp;=&nbsp;a&nbsp;<br />
window.close()&nbsp;<br />
}&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
&lt;body&gt;&nbsp;<br />
&lt;form&gt;&nbsp;<br />
&lt;input&nbsp;value="返回"&nbsp;type=button&nbsp;onclick="sendTo()"&gt;&nbsp;<br />
&lt;/form&gt;&nbsp;<br />
<br />
常见问题：&nbsp;<br />
1，如何在模态对话框中进行提交而不新开窗口？&nbsp;<br />
如果你&nbsp;的&nbsp;浏览器是IE5.5+,可以在对话框中使用带name属性的iframe，提交时可以制定target为该iframe的name。对于IE4+，你可以用高度为0的frame来作：例子，&nbsp;<br />
<br />
test6.htm&nbsp;<br />
===================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
window.showModalDialog("test7.htm")&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
test7.htm&nbsp;<br />
===================&nbsp;<br />
if(window.location.search)&nbsp;alert(window.location.search)&nbsp;<br />
&lt;frameset&nbsp;rows="0,*"&gt;&nbsp;<br />
&lt;frame&nbsp;src="about:blank"&gt;&nbsp;<br />
&lt;frame&nbsp;src="test8.htm"&gt;&nbsp;<br />
&lt;/frameset&gt;&nbsp;<br />
<br />
test8.htm&nbsp;<br />
===================&nbsp;<br />
&lt;form&nbsp;target="_self"&nbsp;method="get"&gt;&nbsp;<br />
&lt;input&nbsp;name=txt&nbsp;value="test"&gt;&nbsp;<br />
&lt;input&nbsp;type=submit&gt;&nbsp;<br />
&lt;/form&gt;&nbsp;<br />
&lt;script&gt;&nbsp;<br />
if(window.location.search)&nbsp;alert(window.location.search)&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向对话框传递参数吗？&nbsp;<br />
答案是不能。但在frame里是可以的。
<img src ="http://www.blogjava.net/hhcto/aggbug/144436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2007-09-12 11:19 <a href="http://www.blogjava.net/hhcto/archive/2007/09/12/144436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javaScript + DHtml + Css 自己实现select (原创)</title><link>http://www.blogjava.net/hhcto/archive/2007/06/27/126472.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Wed, 27 Jun 2007 01:51:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2007/06/27/126472.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/126472.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2007/06/27/126472.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/126472.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/126472.html</trackback:ping><description><![CDATA[<p>&lt;----------------HTML部分---------------------&gt;<br><br>&lt;style&gt;<br>.close{<br>&nbsp; visibility:hidden; <br>&nbsp; border : 1px solid #008000;<br>&nbsp; position:absolute;<br>&nbsp;&nbsp; }<br>.open{<br>&nbsp; visibility:visible;<br>&nbsp; border : 1px solid #008000;<br>&nbsp; position:absolute;<br>&nbsp; }<br>&lt;/style&gt;<br>&lt;script language='JavaScript'&gt;<br>&nbsp;<br>&nbsp;//—————显示菜单项 menuId:当前菜单Id—————<br>&nbsp;function showMenuItem(menuId) {<br>&nbsp;&nbsp;var node = document.getElementById(menuId);<br>&nbsp;&nbsp;if(node.hasChildNodes()) {<br>&nbsp;&nbsp;&nbsp;node.style.visibility='visible';<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>&nbsp;<br>&nbsp;//—————隐藏菜单项 menuId:当前菜单Id—————<br>&nbsp;function hideMenuItem(menuId) {<br>&nbsp;&nbsp;&nbsp;document.getElementById(menuId).style.visibility='hidden';<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————隐藏菜单项事件方法—————<br>&nbsp;function hideMenuItemEvent() {<br>&nbsp;&nbsp;event.srcElement.parentElement.style.visibility='hidden';<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————初始化下拉框—————<br>&nbsp;function inintSelectMenu() {<br>&nbsp;&nbsp;//查找一级节点<br>&nbsp;&nbsp;var resultNodes = findXmlnodes("//mainClass",resultNodes);<br>&nbsp;&nbsp;var mainClassNode = document.getElementById("mainClass");</p>
<p>&nbsp;&nbsp;//给一级节点添加子子节点<br>&nbsp; &nbsp;addChildrenNodes(mainClassNode,resultNodes);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//缓存一级菜单选择的默认值<br>&nbsp;&nbsp;var mainClassTxtNode = document.getElementById("mainClassTxt");<br>&nbsp;&nbsp;var mainClassBtnNode = document.getElementById("mainClassBtn");<br>&nbsp;&nbsp;mainClassTxtNode.setAttribute("tempId",1);<br>&nbsp;&nbsp;//设置下拉菜单绝对位置<br>&nbsp;&nbsp;setDivAbsulotePosition(mainClassNode,mainClassTxtNode);<br>&nbsp;&nbsp;//设置Btn的绝对位置<br>&nbsp;&nbsp;//mainClassBtnNode.style.position = "absolute";<br>&nbsp;&nbsp;//setBtnAbsulotePosition(mainClassBtnNode,mainClassTxtNode);<br>&nbsp;<br>&nbsp;&nbsp;//一级菜单<br>&nbsp;&nbsp;mainClassNode.attachEvent(onblur,hideMenuItem);<br>&nbsp;&nbsp;//二级菜单<br>&nbsp;&nbsp;var subClassNode = document.getElementById("subClass");<br>&nbsp;&nbsp;var subClassBtnNode = document.getElementById("subClassBtn");<br>&nbsp;&nbsp;var subClassTxtNode = document.getElementById("subClassTxt");<br>&nbsp;&nbsp;setDivAbsulotePosition(subClassNode,subClassTxtNode);<br>&nbsp;&nbsp;//设置Btn的绝对位置<br>&nbsp;&nbsp;//subClassBtnNode.style.position = "absolute";<br>&nbsp;&nbsp;//setBtnAbsulotePosition(subClassBtnNode,subClassTxtNode);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//三级菜单<br>&nbsp;&nbsp;var itemClassNode = document.getElementById("itemClass");<br>&nbsp;&nbsp;var itemClassBtnNode = document.getElementById("itemClassBtn");<br>&nbsp;&nbsp;var itemClassTxtNode = document.getElementById("itemClassTxt");<br>&nbsp;&nbsp;setDivAbsulotePosition(itemClassNode,itemClassTxtNode);<br>&nbsp;&nbsp;//设置Btn的绝对位置<br>&nbsp;&nbsp;//itemClassBtnNode.style.position = "absolute";<br>&nbsp;&nbsp;//setBtnAbsulotePosition(itemClassBtnNode,itemClassTxtNode);<br>&nbsp;} </p>
<p>&nbsp;<br>&nbsp;//—————更新下拉菜单—————<br>&nbsp;function updateSelectMenu() {<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//被选择节点Id<br>&nbsp;&nbsp;var nodeId = event.srcElement.getAttribute("id");<br>&nbsp;&nbsp;//被选择节点文本子节点名<br>&nbsp;&nbsp;var nodeName = event.srcElement.title != null &gt; 5 ? event.srcElement.title : event.srcElement.childNodes.item(0).nodeValue;<br>&nbsp;&nbsp;//被选择节点父节点<br>&nbsp;&nbsp;var parentNode = event.srcElement.parentElement;<br>&nbsp;&nbsp;//被选择节点父节点Id<br>&nbsp;&nbsp;var parentNodeId = parentNode.getAttribute("id");<br>&nbsp;&nbsp;//给文本框赋被选择值<br>&nbsp;&nbsp;document.getElementById(parentNodeId + "Txt").setAttribute("value",nodeName);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//如果被选择的是一级菜单，更新二、三级菜单<br>&nbsp;&nbsp;if(parentNodeId == "mainClass") {<br>&nbsp;&nbsp;&nbsp;//缓存一级菜单选择<br>&nbsp;&nbsp;&nbsp;document.getElementById(parentNodeId + "Txt").setAttribute("tempId",nodeId);<br>&nbsp;&nbsp;&nbsp;//清空二级菜单列表<br>&nbsp;&nbsp;&nbsp;document.getElementById("subClassTxt").setAttribute("value","请选择");<br>&nbsp;&nbsp;&nbsp;//清空三级菜单列表<br>&nbsp;&nbsp;&nbsp;document.getElementById("itemClassTxt").setAttribute("value","请选择");<br>&nbsp;&nbsp;&nbsp;//移除二级节点<br>&nbsp;&nbsp;&nbsp;removeChildNodes("subClass");<br>&nbsp;&nbsp;&nbsp;//移除三级节点<br>&nbsp;&nbsp;&nbsp;removeChildNodes("itemClass");<br>&nbsp;&nbsp;&nbsp;//查找二级节点<br>&nbsp;&nbsp;&nbsp;var resultSubNodes = findXmlnodes("//mainClass[@id=" + nodeId + "]/subClass",resultSubNodes);<br>&nbsp;&nbsp;&nbsp;//alert(resultSubNodes.length);<br>&nbsp;&nbsp;&nbsp;var subNode = document.getElementById("subClass");<br>&nbsp;&nbsp;&nbsp;//给二级节点添加子子节点<br>&nbsp; &nbsp;&nbsp;addChildrenNodes(subNode,resultSubNodes);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//如果更新的是二级菜单，更新三级菜单<br>&nbsp;&nbsp;if(parentNodeId == "subClass") {<br>&nbsp;&nbsp;&nbsp;//获得一级菜单缓存值<br>&nbsp;&nbsp;&nbsp;var mainClassId = document.getElementById("mainClassTxt").getAttribute("tempId");<br>&nbsp;&nbsp;&nbsp;//清空三级菜单列表<br>&nbsp;&nbsp;&nbsp;document.getElementById("itemClassTxt").setAttribute("value","请选择");<br>&nbsp;&nbsp;&nbsp;removeChildNodes("itemClass");<br>&nbsp;&nbsp;&nbsp;//移除三级节点<br>&nbsp;&nbsp;&nbsp;removeChildNodes("itemClass");<br>&nbsp;&nbsp;&nbsp;//查找三级节点<br>&nbsp;&nbsp;&nbsp;var resultItemNodes = findXmlnodes("//mainClass[@id=" + mainClassId + "]/subClass[@id=" + nodeId + "]/item",resultItemNodes);<br>&nbsp;&nbsp;&nbsp;//alert(resultItemNodes.length);<br>&nbsp;&nbsp;&nbsp;var itemNode = document.getElementById("itemClass");<br>&nbsp;&nbsp;&nbsp;//给三级节点添加子子节点<br>&nbsp; &nbsp;&nbsp;addChildrenNodes(itemNode,resultItemNodes);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;}<br>&nbsp;<br>&nbsp;</p>
<p>&nbsp;//—————添加子节点列表 parentNode： 父节点, childrenNodes: 子节点列表—————<br>&nbsp;function addChildrenNodes(parentNode,childrenNodes) {<br>&nbsp;&nbsp;for(i = 0; i &lt;　childrenNodes.length; i++) {<br>&nbsp;&nbsp;&nbsp;//var tempNode = childrenNodes.item(i);<br>&nbsp;&nbsp;&nbsp;//prompt("tempNode",tempNode.xml);<br>&nbsp;&nbsp;&nbsp;createNode("div",childrenNodes.item(i).getAttribute("id"),childrenNodes.item(i).getAttribute("name"),parentNode);<br>&nbsp;&nbsp;&nbsp;//alert(childrenNodes.item(i).getAttribute("name") + "&nbsp; " + childrenNodes.item(i).getAttribute("id"));<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>&nbsp;<br>&nbsp;//—————创建子节点，并添加到父节点 type: 节点类型, id：节点Id, txt:文本节点文本值，parentNode： 父节点 —————<br>&nbsp;function createNode(type,id,txt,parentNode) {<br>&nbsp;&nbsp;//文本节点<br>&nbsp;&nbsp;var txtNode = null;<br>&nbsp;&nbsp;//需创建的子节点<br>&nbsp;&nbsp;var subNode = null;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//判断节点类型是否为空，为空直接返回<br>&nbsp;&nbsp;if(type == null) {<br>&nbsp;&nbsp;&nbsp;return;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;//创建节点<br>&nbsp;&nbsp;&nbsp;&nbsp; subNode = document.createElement(type);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//判断是否包含文本是否为空，不为空则创建并添加文本子节点<br>&nbsp;&nbsp;if(txt != null) {<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//设置文本节点弹出文字<br>&nbsp;&nbsp;&nbsp;if(checkSelectMenuItemLength(txt)){<br>&nbsp;&nbsp;&nbsp;&nbsp;subNode.title = txt;<br>&nbsp;&nbsp;&nbsp;&nbsp;var txtTemp = txt.substring(0, 5) + "..." ;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;//创建文本节点<br>&nbsp;&nbsp;&nbsp;&nbsp;txtNode = document.createTextNode(txtTemp);<br>&nbsp;&nbsp;&nbsp;}else {<br>&nbsp;&nbsp;&nbsp;&nbsp;txtNode = document.createTextNode(txt);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//添加文本节点<br>&nbsp;&nbsp;&nbsp;subNode.appendChild(txtNode);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//判断id是否为空，不为空则添加id属性<br>&nbsp;&nbsp;if(id != null) {<br>&nbsp;&nbsp;&nbsp;subNode.setAttribute('id',id);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;subNode.attachEvent("onclick",hideMenuItemEvent);<br>&nbsp;&nbsp;subNode.attachEvent("onclick",updateSelectMenu);<br>&nbsp;&nbsp;subNode.attachEvent("onmouseover",romanceItem);<br>&nbsp;&nbsp;subNode.attachEvent("onmouseout",unRomanceItem);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//添加新建子节点到父节点<br>&nbsp;&nbsp;parentNode.appendChild(subNode);<br>&nbsp;&nbsp;<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————查找数据节点 condition: XPath查询条件, resultNodes:返回节点集合—————<br>&nbsp;function findXmlnodes(condition,resultNodes) {<br>&nbsp;&nbsp;//判断查询条件是否为空<br>&nbsp;&nbsp;if(condition == null) {<br>&nbsp;&nbsp;&nbsp;return;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;// 初始化ActiveXObject DOMDocment对象<br>&nbsp;&nbsp;var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");<br>&nbsp;&nbsp;// 设置异步方式<br>&nbsp;&nbsp;xmlDoc.async=false;<br>&nbsp;&nbsp;//　加载xml<br>&nbsp;&nbsp;xmlDoc.load(document.getElementById("mainClassTxt").getAttribute("xmlSrc"));<br>&nbsp;&nbsp;//&nbsp; 指定查询语言<br>&nbsp;&nbsp;xmlDoc.setProperty("SelectionLanguage","XPath");<br>&nbsp;&nbsp;//&nbsp; 查询并获得节点 <br>&nbsp;&nbsp;resultNodes = xmlDoc.documentElement.selectNodes(condition);<br>&nbsp;&nbsp;//alert(resultNodes.length);&nbsp;<br>&nbsp;&nbsp;return resultNodes;<br>&nbsp;}<br>&nbsp;<br>&nbsp;<br>&nbsp;//—————移除所有子节点 pareantNodeName： 父节点名—————<br>&nbsp;function removeChildNodes(pareantNodeName) {<br>&nbsp;&nbsp;var subNodes = document.getElementById(pareantNodeName).childNodes;<br>&nbsp;&nbsp;var subNodeslength = subNodes.length;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;for (i = 0; i &lt; subNodeslength; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;subNodes.item(0).removeNode(true);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;</p>
<p>&nbsp;//—————渲染条目背景色—————<br>&nbsp;function romanceItem() {<br>&nbsp;&nbsp;event.srcElement.style.backgroundColor="cornflowerblue";<br>&nbsp;}</p>
<p>&nbsp;//—————反渲染条目背景色—————<br>&nbsp;function unRomanceItem() {<br>&nbsp;&nbsp;event.srcElement.style.backgroundColor="#ffffff";<br>&nbsp;}</p>
<p>&nbsp;//—————检测条目长度—————<br>&nbsp;function checkSelectMenuItemLength(txt) {<br>&nbsp;&nbsp;if(txt.length &gt; 5)<br>&nbsp;&nbsp;&nbsp;return true;<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;return false;<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————设置层的绝对坐标 setNode：须设置坐标的节点 consultNode：参照节点 —————<br>&nbsp;function setDivAbsulotePosition(setNode,consultNode) {<br>&nbsp;&nbsp;setNode.style.top = getPosition(consultNode).y +　consultNode.offsetHeight;<br>&nbsp;&nbsp;setNode.style.left = getPosition(consultNode).x;<br>&nbsp;&nbsp;setNode.style.width = consultNode.offsetWidth;<br>&nbsp;} <br>&nbsp;<br>&nbsp;function setBtnAbsulotePosition(setNode,consultNode) {<br>&nbsp;&nbsp;setNode.style.top = getPosition(consultNode).y;<br>&nbsp;&nbsp;setNode.style.left = getPosition(consultNode).x + consultNode.offsetWidth;<br>&nbsp;<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————获取参照节点的绝对位置 node： 参照节点—————<br>&nbsp;function getPosition(node){&nbsp; <br>&nbsp;&nbsp;var left = 0;&nbsp; <br>&nbsp;&nbsp;var top&nbsp; = 0;&nbsp; <br>&nbsp;&nbsp;while (node.offsetParent){&nbsp; <br>&nbsp;&nbsp;&nbsp;left += node.offsetLeft;&nbsp; <br>&nbsp;&nbsp;&nbsp;top += node.offsetTop;&nbsp; <br>&nbsp;&nbsp;node = node.offsetParent;&nbsp; <br>&nbsp;&nbsp;}&nbsp; <br>&nbsp;&nbsp;left += node.offsetLeft;&nbsp; <br>&nbsp;&nbsp;top += node.offsetTop;<br>&nbsp;return {x:left, y:top};&nbsp; <br>}&nbsp; <br>&nbsp;<br>&lt;/script&gt;</p>
<p>&lt;html&gt;<br>&nbsp;&lt;body onload="inintSelectMenu();"&gt;<br>&nbsp;&nbsp;&lt;form&gt;<br>&nbsp;&nbsp;&nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;<br>&nbsp;&nbsp;&nbsp;&lt;center&gt;<br>&nbsp;&nbsp;&nbsp;&lt;table&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;nbsp;&amp;nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;主分类<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type='text' id='mainClassTxt' readonly='true' value="请选择" xmlSrc="selectMenuData.xml"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input id='mainClassBtn' type='button' value='&gt;&gt;'&nbsp; onclick="showMenuItem('mainClass');hideMenuItem('itemClass');hideMenuItem('subClass');" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/input&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id='mainClass' class="close" &gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&amp;nbsp;&amp;nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;子分类<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp; type='text' id='subClassTxt' readonly='true' value="请选择" &gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input id='subClassBtn' type='button' value='&gt;&gt;' onclick="showMenuItem('subClass');hideMenuItem('mainClass');hideMenuItem('itemClass');"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/input&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id='subClass' class="close" &gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&amp;nbsp;&amp;nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;条&nbsp; 目<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type='text' id='itemClassTxt' readonly='true' value="请选择"&nbsp; &gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input id='itemClassBtn' type='button' value='&gt;&gt;' onclick="showMenuItem('itemClass');hideMenuItem('mainClass');hideMenuItem('subClass');" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/input&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id='itemClass' class="close" &gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br>&nbsp;&nbsp;&nbsp;&lt;/center&gt;<br>&nbsp;&nbsp;&lt;/form&gt;<br>&nbsp;&lt;/body&gt;<br>&lt;/html&gt;<br>&lt;----------------HTML部分---------------------&gt;<br><br><br><br>&lt;----------------XML部分---------------------&gt;<br>&lt;classes&gt;<br>&nbsp;&lt;mainClass id='1' name='book'&gt;<br>&nbsp;&nbsp;&lt;subClass id='1' name='computer'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='think in java'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='C#'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='javascript'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='2' name='literature'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='literaturea'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='literatureb'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='literaturec'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='3' name='test'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='testaaaa'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='testbbbb'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='testcccc'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='4' name='ssssss'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='sssssssaaa'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='sssssssbbb'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='sssssssccc'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&lt;/mainClass&gt;<br>&nbsp;&lt;mainClass id='2' name='book2'&gt;<br>&nbsp;&nbsp;&lt;subClass id='1' name='computer2'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='think in java2'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='C#2'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='javascript2'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='2' name='literature2'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='literaturea21'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='literatureb22'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='literaturec23'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='3' name='test2'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='testaaaa21'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='testbbbb22'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='testcccc23'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='4' name='ssssss2'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='sssssssaaa21'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='sssssssbbb22'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='sssssssccc23'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&lt;/mainClass&gt;<br>&nbsp;&lt;mainClass id='3' name='book3'&gt;<br>&nbsp;&nbsp;&lt;subClass id='1' name='computer3'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='think in java3'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='C#3'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='javascript3'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='2' name='literature3'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='literaturea31'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='literatureb32'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='literaturec33'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='3' name='test3'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='testaaaa31'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='testbbbb32'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='testcccc33'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='4' name='ssssss3'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='sssssssaaa31'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='sssssssbbb32'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='sssssssccc33'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&lt;/mainClass&gt;<br>&nbsp;&lt;mainClass id='4' name='book4'&gt;<br>&nbsp;&nbsp;&lt;subClass id='1' name='computer4'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='think in java4'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='C#4'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='javascript4'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='2' name='literature4'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='literaturea41'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='literatureb42'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='literaturec43'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='3' name='test4'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='testaaaa41'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='testbbbb42'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='testcccc43'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='4' name='ssssss4'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='sssssssaaa41'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='sssssssbbb42'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='sssssssccc43'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&lt;/mainClass&gt;<br>&lt;/classes&gt;<br>&lt;----------------XML部分---------------------&gt;</p>
<img src ="http://www.blogjava.net/hhcto/aggbug/126472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2007-06-27 09:51 <a href="http://www.blogjava.net/hhcto/archive/2007/06/27/126472.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript attachEvent传递参数的办法（转载）</title><link>http://www.blogjava.net/hhcto/archive/2007/06/27/126469.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Wed, 27 Jun 2007 01:48:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2007/06/27/126469.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/126469.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2007/06/27/126469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/126469.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/126469.html</trackback:ping><description><![CDATA[<ol>
    <li class=alt><span><span class=keyword>var</span><span>&nbsp;newopen&nbsp;=&nbsp;</span><span class=keyword>function</span><span>(id,level) &nbsp;&nbsp;</span></span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;</span><span class=keyword>function</span><span>() &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;opentree(id,level);</span><span class=comment>//该函数为外部定义的一个执行函数； </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=alt><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>x.attachEvent(</span><span class=string>"onclick"</span><span>,newopen(id,parseInt(level)+1)); &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>y.attachEvent(</span><span class=string>"onclick"</span><span>,newopen(id,parseInt(level)+2));&nbsp;&nbsp;</span></span></li>
</ol>
<img src ="http://www.blogjava.net/hhcto/aggbug/126469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2007-06-27 09:48 <a href="http://www.blogjava.net/hhcto/archive/2007/06/27/126469.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>