??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美影院,在线亚洲欧美,国产亚洲精品美女久久久http://www.aygfsteel.com/hhcto/zh-cnSat, 17 May 2025 06:14:44 GMTSat, 17 May 2025 06:14:44 GMT60在ubuntu下装jdk1.5和jboss4.0.0http://www.aygfsteel.com/hhcto/archive/2010/11/20/338518.htmlhhctohhctoSat, 20 Nov 2010 00:28:00 GMThttp://www.aygfsteel.com/hhcto/archive/2010/11/20/338518.htmlhttp://www.aygfsteel.com/hhcto/comments/338518.htmlhttp://www.aygfsteel.com/hhcto/archive/2010/11/20/338518.html#Feedback0http://www.aygfsteel.com/hhcto/comments/commentRss/338518.htmlhttp://www.aygfsteel.com/hhcto/services/trackbacks/338518.html

hhcto 2010-11-20 08:28 发表评论
]]>
Ubuntu 上安?DB2 Express-C http://www.aygfsteel.com/hhcto/archive/2010/11/20/338517.htmlhhctohhctoSat, 20 Nov 2010 00:12:00 GMThttp://www.aygfsteel.com/hhcto/archive/2010/11/20/338517.htmlhttp://www.aygfsteel.com/hhcto/comments/338517.htmlhttp://www.aygfsteel.com/hhcto/archive/2010/11/20/338517.html#Feedback0http://www.aygfsteel.com/hhcto/comments/commentRss/338517.htmlhttp://www.aygfsteel.com/hhcto/services/trackbacks/338517.htmlDB2 ExpressQCl装在了Linux? 拟机上?我用的虚拟机是VirtualBox3.0.4Q?SUN出品Q?只有80M左右Q?嘿嘿Q?用v来很方便Q在虚拟Z装过增强工具以后Q? 虚拟机的屏幕分L率就会自动调_ 自动适应?和VMWare庞大的体U比hQ?y了很多哦?至于功能和性能Q?我是没感觉出有啥区别来?
    l箋说咱们的DB2。准备工作就dIBM下蝲安装包和语言包?span style="color: #00ff40; font-weight: bold;">db2exc_970_LNX_x86.tar.gz ?db2exc_nlpack_970_LNX_x86.tar.gz?nbsp;
    下面开始安装:
  1. tar -xvzf db2exc_970_LNX_x86.tar.gz
    tar -xvzf db2exc_nlpack_970_LNX_x86.tar.gz

    |上_ 可以解压到同一个目录里面, 自动整合Q?q个我没有试验, 今天晚上试试?/li>
  2. q个时候, 如果执行db2setup的话Q?会报一个包. The required library file libaio.so.1 is not found on the system.
    Ubuntu的好处体现出来了Qsudo apt-get install libaio1 安装~少的包?br /> 其实我第一ơ安装的是libaioQ?apt-get提示我说不可用, 可以用libaio1替代?br /> 安装完依赖包Q?可以用db2setup来安装了?因ؓUbuntu一般不允许root登陆Q?Z方便Q?我用我的用户安装的?用root权限安装的话Q?会安装到/opt/ibm/db2下面Q?用普通用L话, 会安装的用户目录?br />
    嗯, 高手也可以用db2-install命o行模式安装?其实期间没有交互信息的, 哪个都行?br />
    安装的过E, ׃l说了, 一路nextq来的?/li>
  3. 安装l束以后Q?得记着Q?要运行安装目录下的db2profileQ?d环境变量? /home/richar/sqllib/db2profile 自己看清楚目录哦?/li>
  4. 执行l束Q?q行db2start命oQ?它报l我个错Q?br /> SQL1220NThedatabasemanagersharedmemorysetcannotbeallocated.

    |上搜了些资料, 说是׃n~存不Q?具体原理我也不清楚了??font color="#990000" face="NSimsun">sysctl kernel.shmmax命o查看了共享内存。kernel.shmmax=33554432(32MB), ?56M
    echo 268435456 > /proc/sys/kernel/shmmax

    之后再次执行db2start, 启动成功?/font>
    到次Q?安装q束了?语言包的没写Q?因ؓ安装更简单, 直接db2setup可以了Q?Ҏ提示Q?很简单的?/div>
    后箋的配|, 使用Q?下篇文章Q?我们再介l?/div>
tar -xvzf db2exc_970_LNX_x86.tar.gz tar -xvzf db2exc_nlpack_970_LNX_x86.tar.gz

本文 “立子” 博客Q请务必保留此出?a >http://leaze.blog.51cto.com/83088/195583



hhcto 2010-11-20 08:12 发表评论
]]>ubuntu 里的linux版qq不稳?/title><link>http://www.aygfsteel.com/hhcto/archive/2010/11/20/338516.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Sat, 20 Nov 2010 00:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/hhcto/archive/2010/11/20/338516.html</guid><wfw:comment>http://www.aygfsteel.com/hhcto/comments/338516.html</wfw:comment><comments>http://www.aygfsteel.com/hhcto/archive/2010/11/20/338516.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hhcto/comments/commentRss/338516.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hhcto/services/trackbacks/338516.html</trackback:ping><description><![CDATA[解决qq崩溃问题Q首先在l端输入Qsudo gedit /usr/bin/qq 弹出来的代码修改ؓ以下代码: #!/bin/sh export GDK_NATIVE_WINDOWS=true cd /usr/share/tencent/qq/ ./qq q样QQ׃?崩溃? <img src ="http://www.aygfsteel.com/hhcto/aggbug/338516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hhcto/" target="_blank">hhcto</a> 2010-11-20 08:02 <a href="http://www.aygfsteel.com/hhcto/archive/2010/11/20/338516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript囄览器的核心—图片预加蝲(?http://www.aygfsteel.com/hhcto/archive/2008/07/07/213061.htmlhhctohhctoMon, 07 Jul 2008 08:32:00 GMThttp://www.aygfsteel.com/hhcto/archive/2008/07/07/213061.htmlhttp://www.aygfsteel.com/hhcto/comments/213061.htmlhttp://www.aygfsteel.com/hhcto/archive/2008/07/07/213061.html#Feedback4http://www.aygfsteel.com/hhcto/comments/commentRss/213061.htmlhttp://www.aygfsteel.com/hhcto/services/trackbacks/213061.html|站开发时l常需要在某个面需要实现对大量囄的浏览,如果考虑量的话Q大可以像pconline一h个页面只昄一张图片,让用h看一张图片就需要重C载一下整个页面。不q,在web2.0时代Q更多h愿意用javascript来实C个图片浏览器Q让用户无需{待q长的时间就能看到其他图片?/p>

知道了一张图片的地址Q需要把它在一个固定大的html容器Q可以是div{)里边昄出来Q最重要的当然是需要知道这张即显C的囄的宽和高Q然后再l合容器的宽和高Q按照一定的~放比例使图片显C出来。因此,实现囄预加载就成ؓ囄览器的核心功能了?/p>

做过囄{效果的朋友其实都知道Q要让图片轮换的时候不出现{待Q最好是先让囄下蝲到本圎ͼ让浏览器~存h。这Ӟ一般都会用到js里边的Image对象。一般的手段无非q样Q?br /> function preLoadImg(url) {
  var img = new Image();
  img.src = url;
}
通过调用preLoadImg函数Q传入图片的urlQ就能囄预先下蝲下来了。实际上Q这里用到的预下载功能也和这基本一致。图片预下蝲下来后,通过 img的width和height属性,p知道囄的宽和高了。但是需要考虑刎ͼ在做囄览器功能时Q图片都是实时显C的。比如你点了昄的按钮,q个时候才会调用上边类似的代码来加载图片。因此,如果你直接用img.width的时候,囄q没有完全下载下来。因此,需要用一些异步的ҎQ等到图片下载完毕的时候才会再对img的width和heightq行调用?/p>

实现q样的异步方法实际上不难Q图片的下蝲完毕事g也很单,是单的onload事g。因此,我们可以写出下面的代码:
function loadImage(url, callback) {
  var img = new Image();
  img.src = url;

  img.onload = function(){ //囄下蝲完毕时异步调用callback函数?br />     callback.call(img);   // callback函数this指针切换为img?br />   };
}

好了Q再来写一个测试用例?br /> function imgLoaded(){
  alert(this.width);
}
<input type="button" value="loadImage" onclick="loadImage('aaa.jpg',imgLoaded)"/>

在firefox中测试一下,发现不错Q果然和预想的效果一P在图片下载后Q就会弹出图片的宽度来。无论点d次或者刷新结果都一栗?/p>

不过Q做到这一步,先别高兴太早——还需要考虑一下浏览器的兼Ҏ,于是Q赶紧到ie里边试一下。没错,同样弹出了图片的宽度。但是,再点击load的时候,情况׃一样了Q什么反应都没有了。刷C下,也同样如此?/p>

l过对多个浏览器版本的测试,发现ie6、opera都会q样Q而firefox和safari则表现正常。其实,原因也挺单的Q就是因为浏览器的缓存了。当囄加蝲q一ơ以后,如果再有对该囄的请求时Q由于浏览器已经~存住这张图片了Q不会再发v一ơ新的请求,而是直接从缓存中加蝲q来。对?firefox和safariQ它们视图ɘq两U加载方式对用户透明Q同样会引v囄的onload事gQ而ie和opera则忽略了q种同一性,不会引v囄的onload事gQ因此上边的代码在它们里边不能得以实现效果?/p>

怎么办呢Q最好的情况是Image可以有一个状态D明它是否已经载入成功了。从~存加蝲的时候,因ؓ不需要等待,q个状态值就直接是表明已l下载了Q而从httph加蝲Ӟ因ؓ需要等待下载,q个值显CZؓ未完成。这L话,可以搞定了?/p>

l过一些分析,l于发现一个ؓ各个览器所兼容的Image的属性——complete。所以,在图片onload事g之前先对q个值做一下判断即可。最后,代码变成如下的样子:
function loadImage(url, callback) {
    var img = new Image(); //创徏一个Image对象Q实现图片的预下?br />     img.src = url;
  
    if (img.complete) { // 如果囄已经存在于浏览器~存Q直接调用回调函?br />         callback.call(img);
        return; // 直接q回Q不用再处理onload事g
    }

    img.onload = function () { //囄下蝲完毕时异步调用callback函数?br />         callback.call(img);//回调函数的this替换为Image对象
    };
};
l过q么一番折腾,ȝ是让各个览器都能满x们的目标了。虽然代码很单,但是却把囄览器中最核心的问题解x了,接下来你所要做的,仅仅是图片如何呈现的问题了?



hhcto 2008-07-07 16:32 发表评论
]]>
常用JDBCq接字符?/title><link>http://www.aygfsteel.com/hhcto/archive/2008/06/14/207937.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Sat, 14 Jun 2008 13:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/hhcto/archive/2008/06/14/207937.html</guid><wfw:comment>http://www.aygfsteel.com/hhcto/comments/207937.html</wfw:comment><comments>http://www.aygfsteel.com/hhcto/archive/2008/06/14/207937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hhcto/comments/commentRss/207937.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hhcto/services/trackbacks/207937.html</trackback:ping><description><![CDATA[<h2>常用JDBCq接字符?/h2> <div class="wmqeeuq" id="postmessage_178335" class="t_msgfont">常用JDBCq接字符?br /> 1.<span onclick="tagshow(event)" class="t_tag">MySQL</span> <div id="wmqeeuq" class="blockcode"><span id="wmqeeuq" class="headactions" onclick="copycode($('code0'));"><br /> </span> <h5><span onclick="tagshow(event)" class="t_tag">代码</span>:</h5> <code id="code0">Class.forName(  " org.gjt.mm.my<span onclick="tagshow(event)" class="t_tag">sql</span>.Driver "  );<br /> Connection conn  =  DriverManager.getConnection(  " jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName " , sUsr, sPwd ); </code></div> 2.Microsoft <span onclick="tagshow(event)" class="t_tag">SQLServer</span> <div id="wmqeeuq" class="blockcode"><span id="wmqeeuq" class="headactions" onclick="copycode($('code1'));"><br /> </span> <h5>代码:</h5> <code id="code1">Class.forName(  " com.microsoft.jdbc.sql<span onclick="tagshow(event)" class="t_tag">server</span>.SQLServerDriver "  );<br /> Connection conn  =  DriverManager.getConnection(  " jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master " , sUsr, sPwd ); </code></div> 3.<span onclick="tagshow(event)" class="t_tag">Oracle</span> <div id="wmqeeuq" class="blockcode"><span id="wmqeeuq" class="headactions" onclick="copycode($('code2'));"><br /> </span> <h5>代码:</h5> <code id="code2">Class.forName(  " oracle.jdbc.driver.OracleDriver "  );<br /> Connection conn  =  DriverManager.getConnection ("jdbc: oracle:thin: @MyDbComputerNameOrIP:1521: ORCL " , sUsr, sPwd ); </code></div> 4.<span onclick="tagshow(event)" class="t_tag">DB2</span> <div id="wmqeeuq" class="blockcode"><span id="wmqeeuq" class="headactions" onclick="copycode($('code3'));"><br /> </span> <h5>代码:</h5> <code id="code3">Class.forName( " com.ibm.db2.jdbc.<span onclick="tagshow(event)" class="t_tag">net</span>.DB2Driver " );<br /> String url = " jdbc:db2://192.9.200.108:6789/SAMPLE " <br /> Connection conn  =  DriverManager.getConnection( url, sUsr, sPwd ); </code></div> 5.ODBC <div id="wmqeeuq" class="blockcode"> <h5>代码:</h5> <code id="code4">Class.forName(  " sun.jdbc.odbc.JdbcOdbcDriver "  );<br /> Connection conn  =  DriverManager.getConnection("jdbc: odbc: "   +  sDsn, sUsr, sPwd ); </code></div> 6.PostgreSQL <div id="wmqeeuq" class="blockcode"><span id="wmqeeuq" class="headactions" onclick="copycode($('code5'));"><br /> </span> <h5>代码:</h5> <code id="code5">Class.forName(  " org.postgresql.Driver "  );<br /> Connection conn  =  DriverManager.getConnection(  " jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName " , sUsr, sPwd );</code></div> </div> <img src ="http://www.aygfsteel.com/hhcto/aggbug/207937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hhcto/" target="_blank">hhcto</a> 2008-06-14 21:13 <a href="http://www.aygfsteel.com/hhcto/archive/2008/06/14/207937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模式H口showModalDialog详解 (转蝲)http://www.aygfsteel.com/hhcto/archive/2007/09/12/144436.htmlhhctohhctoWed, 12 Sep 2007 03:19:00 GMThttp://www.aygfsteel.com/hhcto/archive/2007/09/12/144436.htmlhttp://www.aygfsteel.com/hhcto/comments/144436.htmlhttp://www.aygfsteel.com/hhcto/archive/2007/09/12/144436.html#Feedback0http://www.aygfsteel.com/hhcto/comments/commentRss/144436.htmlhttp://www.aygfsteel.com/hhcto/services/trackbacks/144436.html showModalDialog()、showModelessDialog()Ҏ使用详解 

Javascript有许多内建的Ҏ来生对话框Q如Qwindow.alert(), window.confirm(),window.prompt().{?nbsp;然而IE提供更多的方法支持对话框。如Q?nbsp;

  showModalDialog() (IE 4+ 支持) 
  showModelessDialog() (IE 5+ 支持) 


window.showModalDialog()Ҏ用来创徏一个显CHTML内容的模态对话框Q由于是对话框,因此它ƈ没有一般用window.open()打开的窗口的所有属性?nbsp;
window.showModelessDialog()Ҏ用来创徏一个显CHTML内容的非模态对话框?nbsp;

当我们用showModelessDialog()打开H口Ӟ不必用window.close()d闭它Q当以非模态方式EIE5Q打开Ӟ 打开对话框的H口仍可以进行其他的操作Q即对话框不L最上面的焦点,当打开它的H口QRQ改变时Q它自动关闭。而模态EQIQ]方式的对话框始终有焦点(焦点不可U走Q直到它关闭Q。模态对话框和打开它的H口相联p,因此我们打开另外的窗口时Q他们的链接关系依然保存Qƈ且隐藏在zdH口的下面?nbsp;

使用Ҏ如下Q?nbsp;
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures]) 
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures]) 
参数说明Q?nbsp;
sURL 
必选参敎ͼcdQ字W串。用来指定对话框要显C的文档的URL?nbsp;
vArguments 
可选参敎ͼcdQ变体。用来向对话框传递参数。传递的参数cd不限Q包括数l等。对话框通过window.dialogArguments来取得传递进来的参数?nbsp;
sFeatures 
可选参敎ͼcdQ字W串。用来描q对话框的外观等信息Q可以用以下的一个或几个Q用分号“;”隔开?nbsp;
dialogHeight 对话框高度,不小于1Q0pxQテQ4中dialogHeight ?nbsp;dialogWidth 默认的单位是emQ而テQ5中是pxQؓ方便其见Q在定义modal方式的对话框Ӟ用px做单位?nbsp;
  dialogWidth: 对话框宽度?nbsp;
  dialogLeft: 距离桌面左的距离?nbsp;
  dialogTop: L面上的距R?nbsp;
  center: {yes | no | 1 | 0 }Q窗口是否居中,默认yesQ但仍可以指定高度和宽度?nbsp;
  help: {yes | no | 1 | 0 }Q是否显C帮助按钮,默认yes?nbsp;
  resizable: {yes | no | 1 | 0 } QテQ5Q]Q是否可被改变大。默认no?nbsp;
  status: {yes | no | 1 | 0 } QIE5+Q:是否昄状态栏。默认ؓyes[ Modeless]或no[Modal]?nbsp;
scroll:{ yes | no | 1 | 0 | on | off }Q指明对话框是否昄滚动条。默认ؓyes?nbsp;

q有几个属性是用在HTA中的Q在一般的|页中一般不使用?nbsp;
dialogHide:{ yes | no | 1 | 0 | on | off }Q在打印或者打印预览时对话框是否隐藏。默认ؓno?nbsp;
edge:{ sunken | raised }Q指明对话框的边框样式。默认ؓraised?nbsp;
unadorned:{ yes | no | 1 | 0 | on | off }Q默认ؓno?nbsp;

传入参数Q?nbsp;
要想对话框传递参敎ͼ是通过vArguments来进行传递的。类型不限制Q对于字W串cdQ最大ؓ4096个字W。也可以传递对象,例如Q?nbsp;

test1.htm 
==================== 
<script> 
var mxh1 = new Array("mxh","net_lover","孟子E?) 
var mxh2 = window.open("about:blank","window_mxh") 
// 向对话框传递数l?nbsp;
window.showModalDialog("test2.htm",mxh1) 
// 向对话框传递window对象 
window.showModalDialog("test3.htm",mxh2) 
</script> 

test2.htm 
==================== 
<script> 
var a = window.dialogArguments 
alert("您传递的参数为:" + a) 
</script> 

test3.htm 
==================== 
<script> 
var a = window.dialogArguments 
alert("您传递的参数为window对象Q名Uͼ" + a.name) 
</script> 

可以通过window.returnValue向打开对话框的H口q回信息Q当然也可以是对象。例如: 

test4.htm 
=================== 
<script> 
var a = window.showModalDialog("test5.htm") 
for(i=0;i<a.length;i++) alert(a[i]) 
</script> 

test5.htm 
=================== 
<script> 
function sendTo() 

var a=new Array("a","b") 
window.returnValue = a 
window.close() 

</script> 
<body> 
<form> 
<input value="q回" type=button onclick="sendTo()"> 
</form> 

常见问题Q?nbsp;
1Q如何在模态对话框中进行提交而不新开H口Q?nbsp;
如果?nbsp;?nbsp;览器是IE5.5+,可以在对话框中用带name属性的iframeQ提交时可以制定targetiframe的name。对于IE4+Q你可以用高度ؓ0的frame来作Q例子, 

test6.htm 
=================== 
<script> 
window.showModalDialog("test7.htm") 
</script> 

test7.htm 
=================== 
if(window.location.search) alert(window.location.search) 
<frameset rows="0,*"> 
<frame src="about:blank"> 
<frame src="test8.htm"> 
</frameset> 

test8.htm 
=================== 
<form target="_self" method="get"> 
<input name=txt value="test"> 
<input type=submit> 
</form> 
<script> 
if(window.location.search) alert(window.location.search) 
</script> 
2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向对话框传递参数吗Q?nbsp;
{案是不能。但在frame里是可以的?

hhcto 2007-09-12 11:19 发表评论
]]>
javaScript + DHtml + Css 自己实现select (原创)http://www.aygfsteel.com/hhcto/archive/2007/06/27/126472.htmlhhctohhctoWed, 27 Jun 2007 01:51:00 GMThttp://www.aygfsteel.com/hhcto/archive/2007/06/27/126472.htmlhttp://www.aygfsteel.com/hhcto/comments/126472.htmlhttp://www.aygfsteel.com/hhcto/archive/2007/06/27/126472.html#Feedback1http://www.aygfsteel.com/hhcto/comments/commentRss/126472.htmlhttp://www.aygfsteel.com/hhcto/services/trackbacks/126472.html<----------------HTML部分--------------------->

<style>
.close{
  visibility:hidden;
  border : 1px solid #008000;
  position:absolute;
   }
.open{
  visibility:visible;
  border : 1px solid #008000;
  position:absolute;
  }
</style>
<script language='JavaScript'>
 
 //—————显C单项 menuId:当前菜单Id————?br> function showMenuItem(menuId) {
  var node = document.getElementById(menuId);
  if(node.hasChildNodes()) {
   node.style.visibility='visible';
  }
 }
 
 
 //—————隐藏菜单项 menuId:当前菜单Id————?br> function hideMenuItem(menuId) {
   document.getElementById(menuId).style.visibility='hidden';
 }
 
 //—————隐藏菜单项事gҎ————?br> function hideMenuItemEvent() {
  event.srcElement.parentElement.style.visibility='hidden';
 }
 
 //—————初始化下拉框————?br> function inintSelectMenu() {
  //查找一U节?br>  var resultNodes = findXmlnodes("http://mainClass",resultNodes);
  var mainClassNode = document.getElementById("mainClass");

  //l一U节Ҏ加子子节?br>   addChildrenNodes(mainClassNode,resultNodes);
  
  //~存一U菜单选择的默认?br>  var mainClassTxtNode = document.getElementById("mainClassTxt");
  var mainClassBtnNode = document.getElementById("mainClassBtn");
  mainClassTxtNode.setAttribute("tempId",1);
  //讄下拉菜单l对位置
  setDivAbsulotePosition(mainClassNode,mainClassTxtNode);
  //讄Btn的绝对位|?br>  //mainClassBtnNode.style.position = "absolute";
  //setBtnAbsulotePosition(mainClassBtnNode,mainClassTxtNode);
 
  //一U菜?br>  mainClassNode.attachEvent(onblur,hideMenuItem);
  //二菜单
  var subClassNode = document.getElementById("subClass");
  var subClassBtnNode = document.getElementById("subClassBtn");
  var subClassTxtNode = document.getElementById("subClassTxt");
  setDivAbsulotePosition(subClassNode,subClassTxtNode);
  //讄Btn的绝对位|?br>  //subClassBtnNode.style.position = "absolute";
  //setBtnAbsulotePosition(subClassBtnNode,subClassTxtNode);
  
  //三菜单
  var itemClassNode = document.getElementById("itemClass");
  var itemClassBtnNode = document.getElementById("itemClassBtn");
  var itemClassTxtNode = document.getElementById("itemClassTxt");
  setDivAbsulotePosition(itemClassNode,itemClassTxtNode);
  //讄Btn的绝对位|?br>  //itemClassBtnNode.style.position = "absolute";
  //setBtnAbsulotePosition(itemClassBtnNode,itemClassTxtNode);
 }

 
 //—————更C拉菜单————?br> function updateSelectMenu() {
  
  //被选择节点Id
  var nodeId = event.srcElement.getAttribute("id");
  //被选择节点文本子节点名
  var nodeName = event.srcElement.title != null > 5 ? event.srcElement.title : event.srcElement.childNodes.item(0).nodeValue;
  //被选择节点父节?br>  var parentNode = event.srcElement.parentElement;
  //被选择节点父节点Id
  var parentNodeId = parentNode.getAttribute("id");
  //l文本框赋被选择?br>  document.getElementById(parentNodeId + "Txt").setAttribute("value",nodeName);
  
  //如果被选择的是一U菜单,更新二、三U菜?br>  if(parentNodeId == "mainClass") {
   //~存一U菜单选择
   document.getElementById(parentNodeId + "Txt").setAttribute("tempId",nodeId);
   //清空二菜单列表
   document.getElementById("subClassTxt").setAttribute("value","请选择");
   //清空三菜单列表
   document.getElementById("itemClassTxt").setAttribute("value","请选择");
   //U除二节点
   removeChildNodes("subClass");
   //U除三节点
   removeChildNodes("itemClass");
   //查找二节点
   var resultSubNodes = findXmlnodes("http://mainClass[@id=" + nodeId + "]/subClass",resultSubNodes);
   //alert(resultSubNodes.length);
   var subNode = document.getElementById("subClass");
   //l二U节Ҏ加子子节?br>    addChildrenNodes(subNode,resultSubNodes);
   
   
  }
  
  //如果更新的是二菜单Q更CU菜?br>  if(parentNodeId == "subClass") {
   //获得一U菜单缓存?br>   var mainClassId = document.getElementById("mainClassTxt").getAttribute("tempId");
   //清空三菜单列表
   document.getElementById("itemClassTxt").setAttribute("value","请选择");
   removeChildNodes("itemClass");
   //U除三节点
   removeChildNodes("itemClass");
   //查找三节点
   var resultItemNodes = findXmlnodes("http://mainClass[@id=" + mainClassId + "]/subClass[@id=" + nodeId + "]/item",resultItemNodes);
   //alert(resultItemNodes.length);
   var itemNode = document.getElementById("itemClass");
   //l三U节Ҏ加子子节?br>    addChildrenNodes(itemNode,resultItemNodes);
  }
  
 }
 
 

 //—————添加子节点列表 parentNodeQ?父节? childrenNodes: 子节点列表————?br> function addChildrenNodes(parentNode,childrenNodes) {
  for(i = 0; i < childrenNodes.length; i++) {
   //var tempNode = childrenNodes.item(i);
   //prompt("tempNode",tempNode.xml);
   createNode("div",childrenNodes.item(i).getAttribute("id"),childrenNodes.item(i).getAttribute("name"),parentNode);
   //alert(childrenNodes.item(i).getAttribute("name") + "  " + childrenNodes.item(i).getAttribute("id"));
  }
 }
 
 
 //—————创建子节点Qƈd到父节点 type: 节点cd, idQ节点Id, txt:文本节点文本|parentNodeQ?父节?————?br> function createNode(type,id,txt,parentNode) {
  //文本节点
  var txtNode = null;
  //需创徏的子节点
  var subNode = null;
  
  //判断节点cd是否为空QؓI直接返?br>  if(type == null) {
   return;
  }
  //创徏节点
     subNode = document.createElement(type);
  
  //判断是否包含文本是否为空Q不为空则创建ƈd文本子节?br>  if(txt != null) {
   
   //讄文本节点弹出文字
   if(checkSelectMenuItemLength(txt)){
    subNode.title = txt;
    var txtTemp = txt.substring(0, 5) + "..." ;  
    //创徏文本节点
    txtNode = document.createTextNode(txtTemp);
   }else {
    txtNode = document.createTextNode(txt);
   }
   
   //d文本节点
   subNode.appendChild(txtNode);
  }
  
  //判断id是否为空Q不为空则添加id属?br>  if(id != null) {
   subNode.setAttribute('id',id);
  }
  subNode.attachEvent("onclick",hideMenuItemEvent);
  subNode.attachEvent("onclick",updateSelectMenu);
  subNode.attachEvent("onmouseover",romanceItem);
  subNode.attachEvent("onmouseout",unRomanceItem);
  
  //d新徏子节点到父节?br>  parentNode.appendChild(subNode);
  
 }
 
 //—————查找数据节?condition: XPath查询条g, resultNodes:q回节点集合————?br> function findXmlnodes(condition,resultNodes) {
  //判断查询条g是否为空
  if(condition == null) {
   return;
  }
  // 初始化ActiveXObject DOMDocment对象
  var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
  // 讄异步方式
  xmlDoc.async=false;
  // 加蝲xml
  xmlDoc.load(document.getElementById("mainClassTxt").getAttribute("xmlSrc"));
  //  指定查询语言
  xmlDoc.setProperty("SelectionLanguage","XPath");
  //  查询q获得节?
  resultNodes = xmlDoc.documentElement.selectNodes(condition);
  //alert(resultNodes.length); 
  return resultNodes;
 }
 
 
 //—————移除所有子节点 pareantNodeNameQ?父节点名————?br> function removeChildNodes(pareantNodeName) {
  var subNodes = document.getElementById(pareantNodeName).childNodes;
  var subNodeslength = subNodes.length;
  
  for (i = 0; i < subNodeslength; i++) {
    subNodes.item(0).removeNode(true);
   }
 }
 

 //—————渲染条目背景色————?br> function romanceItem() {
  event.srcElement.style.backgroundColor="cornflowerblue";
 }

 //—————反渲染条目背景艜y———?br> function unRomanceItem() {
  event.srcElement.style.backgroundColor="#ffffff";
 }

 //—————检条目长度————?br> function checkSelectMenuItemLength(txt) {
  if(txt.length > 5)
   return true;
  else
   return false;
 }
 
 //—————设|层的绝对坐?setNodeQ须讄坐标的节?consultNodeQ参照节?————?br> function setDivAbsulotePosition(setNode,consultNode) {
  setNode.style.top = getPosition(consultNode).y + consultNode.offsetHeight;
  setNode.style.left = getPosition(consultNode).x;
  setNode.style.width = consultNode.offsetWidth;
 }
 
 function setBtnAbsulotePosition(setNode,consultNode) {
  setNode.style.top = getPosition(consultNode).y;
  setNode.style.left = getPosition(consultNode).x + consultNode.offsetWidth;
 
 }
 
 //—————获取参照节点的l对位置 nodeQ?参照节点————?br> function getPosition(node){ 
  var left = 0; 
  var top  = 0; 
  while (node.offsetParent){ 
   left += node.offsetLeft; 
   top += node.offsetTop; 
  node = node.offsetParent; 
  } 
  left += node.offsetLeft; 
  top += node.offsetTop;
 return {x:left, y:top}; 

 
</script>

<html>
 <body onload="inintSelectMenu();">
  <form>
   <br><br><br><br><br><br><br><br><br><br><br><br>
   <center>
   <table>
    <tr>
    <td>
    &nbsp;&nbsp;
    dc?br>    <input type='text' id='mainClassTxt' readonly='true' value="请选择" xmlSrc="selectMenuData.xml">
     <input id='mainClassBtn' type='button' value='>>'  onclick="showMenuItem('mainClass');hideMenuItem('itemClass');hideMenuItem('subClass');" />
    </input>
     <div id='mainClass' class="close" >
     </div>
    </td>
       <td>
       &nbsp;&nbsp;
    子分c?br>    <input  type='text' id='subClassTxt' readonly='true' value="请选择" >
     <input id='subClassBtn' type='button' value='>>' onclick="showMenuItem('subClass');hideMenuItem('mainClass');hideMenuItem('itemClass');"/>
    </input>
     <div id='subClass' class="close" >
     </div>
    </td>
       <td>
       &nbsp;&nbsp;
    ?nbsp; ?br>    <input type='text' id='itemClassTxt' readonly='true' value="请选择"  >
     <input id='itemClassBtn' type='button' value='>>' onclick="showMenuItem('itemClass');hideMenuItem('mainClass');hideMenuItem('subClass');" />
    </input>
     <div id='itemClass' class="close" >
     </div>
    </td>
    </tr>
    </table>
   </center>
  </form>
 </body>
</html>
<----------------HTML部分--------------------->



<----------------XML部分--------------------->
<classes>
 <mainClass id='1' name='book'>
  <subClass id='1' name='computer'>
   <item id='1' name='think in java'></item>
   <item id='2' name='C#'></item>
   <item id='3' name='javascript'></item>
  </subClass>
  <subClass id='2' name='literature'>
   <item id='1' name='literaturea'></item>
   <item id='2' name='literatureb'></item>
   <item id='3' name='literaturec'></item>
  </subClass>
  <subClass id='3' name='test'>
   <item id='1' name='testaaaa'></item>
   <item id='2' name='testbbbb'></item>
   <item id='3' name='testcccc'></item>
  </subClass>
  <subClass id='4' name='ssssss'>
   <item id='1' name='sssssssaaa'></item>
   <item id='2' name='sssssssbbb'></item>
   <item id='3' name='sssssssccc'></item>
  </subClass>
 </mainClass>
 <mainClass id='2' name='book2'>
  <subClass id='1' name='computer2'>
   <item id='1' name='think in java2'></item>
   <item id='2' name='C#2'></item>
   <item id='3' name='javascript2'></item>
  </subClass>
  <subClass id='2' name='literature2'>
   <item id='1' name='literaturea21'></item>
   <item id='2' name='literatureb22'></item>
   <item id='3' name='literaturec23'></item>
  </subClass>
  <subClass id='3' name='test2'>
   <item id='1' name='testaaaa21'></item>
   <item id='2' name='testbbbb22'></item>
   <item id='3' name='testcccc23'></item>
  </subClass>
  <subClass id='4' name='ssssss2'>
   <item id='1' name='sssssssaaa21'></item>
   <item id='2' name='sssssssbbb22'></item>
   <item id='3' name='sssssssccc23'></item>
  </subClass>
 </mainClass>
 <mainClass id='3' name='book3'>
  <subClass id='1' name='computer3'>
   <item id='1' name='think in java3'></item>
   <item id='2' name='C#3'></item>
   <item id='3' name='javascript3'></item>
  </subClass>
  <subClass id='2' name='literature3'>
   <item id='1' name='literaturea31'></item>
   <item id='2' name='literatureb32'></item>
   <item id='3' name='literaturec33'></item>
  </subClass>
  <subClass id='3' name='test3'>
   <item id='1' name='testaaaa31'></item>
   <item id='2' name='testbbbb32'></item>
   <item id='3' name='testcccc33'></item>
  </subClass>
  <subClass id='4' name='ssssss3'>
   <item id='1' name='sssssssaaa31'></item>
   <item id='2' name='sssssssbbb32'></item>
   <item id='3' name='sssssssccc33'></item>
  </subClass>
 </mainClass>
 <mainClass id='4' name='book4'>
  <subClass id='1' name='computer4'>
   <item id='1' name='think in java4'></item>
   <item id='2' name='C#4'></item>
   <item id='3' name='javascript4'></item>
  </subClass>
  <subClass id='2' name='literature4'>
   <item id='1' name='literaturea41'></item>
   <item id='2' name='literatureb42'></item>
   <item id='3' name='literaturec43'></item>
  </subClass>
  <subClass id='3' name='test4'>
   <item id='1' name='testaaaa41'></item>
   <item id='2' name='testbbbb42'></item>
   <item id='3' name='testcccc43'></item>
  </subClass>
  <subClass id='4' name='ssssss4'>
   <item id='1' name='sssssssaaa41'></item>
   <item id='2' name='sssssssbbb42'></item>
   <item id='3' name='sssssssccc43'></item>
  </subClass>
 </mainClass>
</classes>
<----------------XML部分--------------------->



hhcto 2007-06-27 09:51 发表评论
]]>
Javascript attachEvent传递参数的办法Q{载)http://www.aygfsteel.com/hhcto/archive/2007/06/27/126469.htmlhhctohhctoWed, 27 Jun 2007 01:48:00 GMThttp://www.aygfsteel.com/hhcto/archive/2007/06/27/126469.htmlhttp://www.aygfsteel.com/hhcto/comments/126469.htmlhttp://www.aygfsteel.com/hhcto/archive/2007/06/27/126469.html#Feedback0http://www.aygfsteel.com/hhcto/comments/commentRss/126469.htmlhttp://www.aygfsteel.com/hhcto/services/trackbacks/126469.html
  • var newopen = function(id,level)   
  • {   
  •   return function()   
  •   {   
  •     opentree(id,level);//该函Cؓ外部定义的一个执行函敎ͼ   
  •   }   
  • }   
  • x.attachEvent("onclick",newopen(id,parseInt(level)+1));   
  • y.attachEvent("onclick",newopen(id,parseInt(level)+2));  


  • hhcto 2007-06-27 09:48 发表评论
    ]]>
    java.lang.UnsatisfiedLinkError错误问题http://www.aygfsteel.com/hhcto/archive/2006/12/17/88321.htmlhhctohhctoSun, 17 Dec 2006 02:38:00 GMThttp://www.aygfsteel.com/hhcto/archive/2006/12/17/88321.htmlhttp://www.aygfsteel.com/hhcto/comments/88321.htmlhttp://www.aygfsteel.com/hhcto/archive/2006/12/17/88321.html#Feedback0http://www.aygfsteel.com/hhcto/comments/commentRss/88321.htmlhttp://www.aygfsteel.com/hhcto/services/trackbacks/88321.html java.lang.UnsatisfiedLinkError错误问题

    q行一D代码的时候报Z下错误:
    java.lang.UnsatisfiedLinkError: no swt-win32-3063 in java.library.path
       at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)
       at java.lang.Runtime.loadLibrary0(Runtime.java:788)
       at java.lang.System.loadLibrary(System.java:834)
       at org.eclipse.swt.internal.Library.loadLibrary(Library.java:100)
       at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
       at org.eclipse.swt.widgets.Widget.<clinit>(Widget.java:66)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:324)
       at astexplorer.ASTMain.compileAndRun(ASTMain.java:970)
       at astexplorer.ASTMain.main(ASTMain.java:997)
    Exception in thread "main"


    估計在你的eclipse project根目錄下沒有swt-win32-3063.dll這個文?
    可在eclipse目錄下找到這個dll連接庫後,copy至project的根目下,應該可以解決問題?

    另外產生java.lang.UnsatisfiedLinkError問題也有可能是project以前使用了高版本的jdk/jreR譯,
    珑֜使用低版本的jdk/jre埯而產生錯?


    你可以把org.eclipse.swt.win32.win32.x86_3.1.0.jar 里面的三个动态库*.dll文g
    swt-awt-win32-3138.dllQswt-gdip-win32-3138.dllQswt-win32-3138.dll   都放?br />C:\windows\system32下面Q这栯定可以了

    原因是swt 由C ?C++直接实现。。。由动态链接库的Ş式调用。所以要攑ֈsystem32?/font>


    hhcto 2006-12-17 10:38 发表评论
    ]]>
    EditPlus~译Java(转蝲)http://www.aygfsteel.com/hhcto/archive/2006/12/10/86725.htmlhhctohhctoSun, 10 Dec 2006 10:00:00 GMThttp://www.aygfsteel.com/hhcto/archive/2006/12/10/86725.htmlhttp://www.aygfsteel.com/hhcto/comments/86725.htmlhttp://www.aygfsteel.com/hhcto/archive/2006/12/10/86725.html#Feedback0http://www.aygfsteel.com/hhcto/comments/commentRss/86725.htmlhttp://www.aygfsteel.com/hhcto/services/trackbacks/86725.html其实EditPlus不但有编辑程序的功能Q还有灵zȝ~译功能Q下面就单介l一下EditPlus对JAVA的编译设|?br />实现对JAVA的编?br />在配|EditPlus之前Q我们先要将JAVA的运行环境安装ƈ且调试好Q这里我׃再说明了?br />首先Q从菜单“工PToolsQ?“配|用户工?..”进入用户工兯|?br />在类别里展开“工具”树形菜?“用户工具”,选择“组和工具项目”中的“Group 1”,点击面板双的“组名称...”按钮,文本Group1”修Ҏ“编译JAVAE序”?br />然后选择修改的组“编译JAVAE序”,点击“添加新工具”按钮,选择E序Q徏立“新建程序”,选中它?br />然后是最重要的步骤(修改属性)Q?br />1.1 d~译功能
    “菜单文字”里的内容修改ؓ“JAVAC”;
    “命令”选择安装JDK后的BIN目录中的~译E序JAVAC.EXEQ如果JDK 安装路径为“c:\jdk”,那么此\径ؓ“c:\jdk\bin\javac.exe”;
    “参数”选择“文件名U”,xCZؓ?(FileName)”;
    “初始目录”选择“文件目录”,昄为?(FileDir)”;选择“捕莯出”复选框?br />1.2 d执行功能
    “菜单文字”里的内容修改ؓ“JAVA”;
    “命令”选择安装JDK后的BIN目录中的~译E序JAVA.EXEQ\径ؓ“c:\jdk\bin\java.exe”;
    “参数”选择“文件名Q不含扩展名Q”,xCZؓ?(FileNameNoExt)”;
    “初始目录”选择“文件目录”,昄为?(FileDir)”;选择“捕莯出”复选框?br />q样完成了基本的配|工作,下面来试着~写一个JAVAE序来测试一下(如图Q,~译的所有信息都会显C在输出H口中,双击某一行错误信息,EditPlus会自动定位到出错?
    转自Q?a >http://www.neeao.com/blog/article.asp?id=2400Q?br />

    hhcto 2006-12-10 18:00 发表评论
    ]]>
    վ֩ģ壺 °Ͷ| | | | ޼| | ɳ| ٽ| | | ͭɽ| | ³ľ| İ| ɽ| | | | Ϫ| | | | | | Ѩ| ̨| | ˿| | | | | | | | Ϫ| | | | | ½|