??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产成人高清在线观看,亚洲成a人片在线观,亚洲av色香蕉一区二区三区 http://www.tkk7.com/franlk/category/9819.htmlzh-cnMon, 10 Mar 2008 17:16:20 GMTMon, 10 Mar 2008 17:16:20 GMT60[摘录]零v步教你搭建Discuz!4.1论坛http://www.tkk7.com/franlk/articles/184988.html见酒晕见酒晕Mon, 10 Mar 2008 03:12:00 GMThttp://www.tkk7.com/franlk/articles/184988.htmlhttp://www.tkk7.com/franlk/comments/184988.htmlhttp://www.tkk7.com/franlk/articles/184988.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/184988.htmlhttp://www.tkk7.com/franlk/services/trackbacks/184988.html 摘录地址Q?a >http://publish.it168.com/2006/0410/20060410003902.shtml

见酒晕 2008-03-10 11:12 发表评论
]]>
DIV昄动的层http://www.tkk7.com/franlk/articles/182912.html见酒晕见酒晕Fri, 29 Feb 2008 06:19:00 GMThttp://www.tkk7.com/franlk/articles/182912.htmlhttp://www.tkk7.com/franlk/comments/182912.htmlhttp://www.tkk7.com/franlk/articles/182912.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/182912.htmlhttp://www.tkk7.com/franlk/services/trackbacks/182912.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function showLayer(content,x,y)
{
    if(content != '')
    {
        Layer.style.visibility = 'visible';
        Layer.style.left = x + document.body.scrollLeft - 50;
        Layer.style.top = y + document.body.scrollTop + 20;
        ShowContent.innerHTML = content;
    }
 }
//-->
</SCRIPT>
<BODY>
<TABLE border="1" cellspacing="1">
<TR onMouseOver="showLayer('ROW1',event.clientX,event.clientY)">
 <TD >1</TD>
 <TD>2</TD>
 <TD>3</TD>
</TR>
<TR onMouseOver="showLayer('ROW2',event.clientX,event.clientY)">
 <TD >1</TD>
 <TD>2</TD>
 <TD>3</TD>
</TR>
</TABLE>
<div id="Layer" style="position:absolute; left:10px; top:0px; width:400px; height:200px; z-index:1;visibility:hidden;">
  <table width="400" border="0" cellspacing="10" bgcolor="#ddffFF" style="{  border-color: #3388cc; border-style: solid; border-width: 1px;}">
    <tr>
      <td style="font-size:9pt" id="ShowContent"></td>
    </tr>
  </table>
</div>
</BODY>
</HTML>

见酒晕 2008-02-29 14:19 发表评论
]]>
(摘录)js中如何删除一个对?/title><link>http://www.tkk7.com/franlk/articles/180084.html</link><dc:creator>见酒晕</dc:creator><author>见酒晕</author><pubDate>Fri, 15 Feb 2008 06:53:00 GMT</pubDate><guid>http://www.tkk7.com/franlk/articles/180084.html</guid><wfw:comment>http://www.tkk7.com/franlk/comments/180084.html</wfw:comment><comments>http://www.tkk7.com/franlk/articles/180084.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/franlk/comments/commentRss/180084.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/franlk/services/trackbacks/180084.html</trackback:ping><description><![CDATA[emement = document.getElementById(emement.id);<br />  emement.parentNode.removeChild(emement); <img src ="http://www.tkk7.com/franlk/aggbug/180084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/franlk/" target="_blank">见酒晕</a> 2008-02-15 14:53 <a href="http://www.tkk7.com/franlk/articles/180084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[摘录]HTTP ERRORhttp://www.tkk7.com/franlk/articles/166592.html见酒晕见酒晕Mon, 10 Dec 2007 02:46:00 GMThttp://www.tkk7.com/franlk/articles/166592.htmlhttp://www.tkk7.com/franlk/comments/166592.htmlhttp://www.tkk7.com/franlk/articles/166592.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/166592.htmlhttp://www.tkk7.com/franlk/services/trackbacks/166592.html

HTTP 错误 400

400 h出错

׃语法格式有误Q服务器无法理解此请求。不作修改,客户E序无法重复此h?

HTTP 错误 401

401.1 未授权:dp|

此错误表明传输给服务器的证书与登录服务器所需的证书不匚w?/p>

请与 Web 服务器的理员联p,以确认您是否h讉K所h资源的权限?/p>

401.2 未授权:服务器的配置Ddp|

此错误表明传输给服务器的证书与登录服务器所需的证书不匚w。此错误通常由未发送正的 WWW 验证表头字段所致?/p>

请与 Web 服务器的理员联p,以确认您是否h讉K所h资源的权限?/p>

401.3 未授权:׃资源中的 ACL 而未授权

此错误表明客h传输的证书没有对服务器中特定资源的访问权限。此资源可能是客h中的地址行所列出的网|文gQ也可能是处理客h中的地址行所列出的文件所需服务器上的其他文件?/p>

误录试图访问的完整地址Qƈ?Web 服务器的理员联pM认您是否具有访问所h资源的权限?/p>

401.4 未授权:授权服务被筛选程序拒l?/h4>

此错误表?Web 服务器已l安装了{选程序,用以验证q接到服务器的用戗此{选程序拒l连接到此服务器的真品证书的讉K?/p>

误录试图访问的完整地址Qƈ?Web 服务器的理员联pM认您是否具有访问所h资源的权限?/p>

401.5 未授权:ISAPI/CGI 应用E序的授权失?/h4>

此错误表明试图用的 Web服务器中的地址已经安装?ISAPI ?CGIE序Q在l箋之前用以验证用户的证书。此E序拒绝用来q接到服务器的真品证书的讉K?/p>

误录试图访问的完整地址Qƈ?Web服务器的理员联pM认您是否具有访问所h资源的权?

HTTP 错误 403

403.1 止Q禁止执行访?/h4>

如果从ƈ不允许执行程序的目录中执?CGI、ISAPI或其他执行程序就可能引v此错误?/p>

如果问题依然存在Q请?Web 服务器的理员联pR?/p>

403.2 止Q禁止读取访?/h4>

如果没有可用的默认网|未启用此目录的目录浏览,或者试图显C驻留在只标Cؓ执行或脚本权限的目录中的HTML |׃D此错误?/p>

如果问题依然存在Q请?Web 服务器的理员联pR?/p>

403.3 止Q禁止写讉K

如果试图上蝲或修改不允许写访问的目录中的文gQ就会导致此问题?/p>

如果问题依然存在Q请?Web服务器的理员联pR?/p>

403.4 止Q需?SSL

此错误表明试图访问的|页受安全套接字层(SSLQ的保护。要查看Q必d试图讉K的地址前输入https:// 以启?SSL?/p>

如果问题依然存在Q请?Web服务器的理员联pR?/p>

403.5 止Q需?SSL 128

此错误消息表明您试图讉K的资源受 128位的安全套接字层QSSLQ保护。要查看此资源,需要有支持此SSL 层的览器?/p>

L认浏览器是否支持 128 ?SSL安全性。如果支持,׃ Web服务器的理员联p,q报告问题?/p>

403.6 止Q拒l?IP 地址

如果服务器含有不允许讉K此站点的 IP地址列表Qƈ且您正用的 IP地址在此列表中,׃D此问题?/p>

如果问题依然存在Q请?Web服务器的理员联pR?/p>

403.7 止Q需要用戯?/h4>

当试图访问的资源要求览器具有服务器可识别的用户安全套接字层QSSLQ证书时׃D此问题。可用来验证您是否ؓ此资源的合法用户?/p>

请与 Web服务器的理员联pM获取有效的用戯书?/p>

403.8 止Q禁止站点访?/h4>

如果 Web服务器不求提供服务,或您没有q接到此站点的权限时Q就会导致此问题?/p>

请与 Web 服务器的理员联pR?/p>

403.9 止讉KQ所q接的用户太?/h4>

如果 Web太忙q且׃量q大而无法处理您的请求时׃D此问题。请E后再次q接?/p>

如果问题依然存在Q请?Web 服务器的理员联pR?/p>

403.10 止讉KQ配|无?/h4>

此时 Web 服务器的配置存在问题?/p>

如果问题依然存在Q请?Web服务器的理员联pR?/p>

403.11 止讉KQ密码已更改

在n份验证的q程中如果用戯入错误的密码Q就会导致此错误。请h|页q试?/p>

如果问题依然存在Q请?Web服务器的理员联pR?/p>

403.12 止讉KQ映程序拒l访?/h4>

拒绝用户证书试图讉K?Web 站点?/p>

请与站点理员联pM建立用户证书权限。如果必要,也可以更改用戯书ƈ重试?

HTTP 错误 404

404 找不?/p>

Web 服务器找不到您所h的文件或脚本。请查URL 以确保\径正?/p>

如果问题依然存在Q请与服务器的管理员联系?

HTTP 错误 405

405 不允许此Ҏ

对于h所标识的资源,不允怋用请求行中所指定的方法。请保为所h的资源设|了正确?MIME cd?/p>

如果问题依然存在Q请与服务器的管理员联系?

HTTP 错误 406

406 不可接受

Ҏ此请求中所发送的“接受”标题Q此h所标识的资源只能生成内容特征ؓ“不可接受”的响应实体?/p>

如果问题依然存在Q请与服务器的管理员联系?

HTTP 错误 407

407 需要代理n份验?/p>

在可为此h提供服务之前Q您必须验证此代理服务器。请dC理服务器Q然后重试?/p>

如果问题依然存在Q请?Web 服务器的理员联pR?

HTTP 错误 412

412 前提条gp|

在服务器上测试前提条件时Q部分请求标题字D中所l定的前提条件估计ؓFALSE。客h前提条件放|在当前资源 metainformationQ标题字D|据)中,以防止所h的方法被误用到其他资源?/p>

如果问题依然存在Q请?Web 服务器的理员联pR?

HTTP 错误 414

414 Request-URI 太长

Request-URL太长Q服务器拒绝服务此请求。仅在下列条件下才有可能发生此条Ӟ

客户机错误地?POST h转换为具有较长的查询信息?GET h?/p>

客户机遇C重定向问题(例如Q指向自w的后缀的重定向前缀Q?/p>

服务器正遭受试图利用某些服务器(固定长度的~冲区用于读取或执行 Request-URIQ中的安全性漏z的客户q扰?/p>

如果问题依然存在Q请?Web 服务器的理员联pR?

HTTP 错误 500

500 服务器的内部错误

Web 服务器不能执行此h。请E后重试此请求?/p>

如果问题依然存在Q请?Web服务器的理员联pR?

HTTP 错误 501

501 未实?/p>

Web 服务器不支持实现此请求所需的功能。请查URL 中的错误Q如果问题依然存在,请与 Web服务器的理员联pR?

HTTP 错误 502

502 |关出错

当用作网x代理Ӟ服务器将从试囑֮现此h时所讉K的upstream 服务器中接收无效的响应?/p>

见酒晕 2007-12-10 10:46 发表评论
]]>
[摘录]FCKeditor在线~辑器的使用http://www.tkk7.com/franlk/articles/135292.html见酒晕见酒晕Wed, 08 Aug 2007 09:03:00 GMThttp://www.tkk7.com/franlk/articles/135292.htmlhttp://www.tkk7.com/franlk/comments/135292.htmlhttp://www.tkk7.com/franlk/articles/135292.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/135292.htmlhttp://www.tkk7.com/franlk/services/trackbacks/135292.html摘录地址:http://java.chinaitlab.com/tools/376760.html

试用了一下FCKeditor,Ҏ|上的文章小l一下:
1.下蝲
FCKeditor.java 2.3 (FCKeditot for java)
FCKeditor 2.2 (FCKeditor基本文g)

2.建立目:tomcat/webapps/TestFCKeditor.

3.FCKeditor2.2解压~?整个目录FCKeditor复制到项目的根目录下Q?br>目录l构为:tomcat/webapps/TestFCKeditor/FCKeditor
然后FCKeditor-2.3.zipQjavaQ压~包中\web\WEB-INF\lib\目录下的两个jar文g拷到目的\WEB-INF\lib\目录下。把其中的src目录下的FCKeditor.tld文gcopy到TestFCKedit/FCKeitor/WEB-INF/?/p>

4.FCKeditor-2.3.zip压羃包中\web\WEB-INF\目录下的web.xml文g合ƈ到项目的\WEB-INF\目录下的web.xml文g中?/p>

5. 修改合ƈ后的web.xml文gQ将名ؓSimpleUploader的Servlet的enabled参数值改为trueQ?br>以允怸传功能,Connector Servlet的baseDir参数值用于设|上传文件存攄位置?br>d标签定义:
<taglib>
<taglib-uri>/TestFCKeditor</taglib-uri>
<taglib-location>/WEB-INF/FCKeditor.tld</taglib-location>
</taglib>

q行图:

6. 上面文g中两个servlet的映分别ؓQ?editor/filemanager/browser/default/connectors/jsp/connector
?editor/filemanager/upload/simpleuploaderQ需要在两个映射前面加上/FCKeditorQ?br>x?FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?br>/FCKeditor/editor/filemanager/upload/simpleuploader?/p>

7.q入skin文g夹,如果你想使用fckeditor默认的这U奶黄色Q?br>那就把除了default文g夹外的另两个文g夹直接删?

8.删除/FCKeditor/目录下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml四个文g以外的所有文?
删除目录/editor/_source,
删除/editor/filemanager/browser/default/connectors/下的所有文?br>删除/editor/filemanager/upload/下的所有文?br>删除/editor/lang/下的除了fcklanguagemanager.js, en.js, zh.js, zh-cn.js四个文g的所有文?/p>

9.打开/FCKeditor/fckconfig.js
修改 FCKConfig.DefaultLanguage = 'zh-cn' ;
把FCKConfig.LinkBrowserURL{的值替换成以下内容Q?br>FCKConfig.LinkBrowserURL
= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;

FCKConfig.ImageBrowserURL
= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;

FCKConfig.FlashBrowserURL
= FCKConfig.BasePath + "filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector" ;


FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=File' ;
FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Flash' ;
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/simpleuploader?Type=Image' ;

10.其它
fckconfig.js总配|文Ӟ可用记录本打开Q修改后文件存为utf-8 ~码格式。找刎ͼ

FCKConfig.TabSpaces = 0 ; 改ؓFCKConfig.TabSpaces = 1 ; 卛_~辑器域内可以用Tab键?/p>

如果你的~辑器还用在|站前台的话Q比如说用于留言本或是日记回复时Q那׃得不考虑安全了,
在前台千万不要用Default的toolbarQ要么自定义一下功能,要么qpȝ已经定义好的BasicQ?br>也就是基本的toolbarQ找刎ͼ
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-',
'Smiley','SpecialChar','Replace','Preview'] ] ;
q是改过的BasicQ把囑փ功能LQ把d链接功能LQ因为图像和链接和flash和图像按钮添加功能都能让前台
늛接访问和上传文gQ?fckeditorq支持编辑域内的鼠标右键功能?br>
FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField',
/*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;

q也是改q的把鼠标右键的“链接、图像,FLASHQ图像按?#8221;功能都去掉?/p>

  扑ֈQ?FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
加上几种我们常用的字?
FCKConfig.FontNames
= '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;

7.d文g /TestFCKeditor/test.jsp:
<%@ page language="java" import="com.fredck.FCKeditor.*" %>
<%@ taglib uri="/TestFCKeditor" prefix="FCK" %>
<script type="text/javascript" src="/TestFCKeditor/FCKeditor/fckeditor.js"></script>

<%--
三种Ҏ调用FCKeditor
1.FCKeditor自定义标{?(必须加头文g <%@ taglib uri="/TestFCKeditor" prefix="FCK" %> )
2.script脚本语言调用 (必须引用 脚本文g <script type="text/javascript" src="/TestFCKeditor/FCKeditor/fckeditor.js"></script> )
3.FCKeditor API 调用 (必须加头文g <%@ page language="java" import="com.fredck.FCKeditor.*" %> )
--%>

<%--
<form action="show.jsp" method="post" target="_blank">
<FCK:editor id="content" basePath="/TestFCKeditor/FCKeditor/"
width="700"
height="500"
skinPath="/TestFCKeditor/FCKeditor/editor/skins/silver/"
toolbarSet = "Default"
>
input
</FCK:editor>
<input type="submit" value="Submit">
</form>
--%>

<form action="show.jsp" method="post" target="_blank">
<table border="0" width="700"><tr><td>
<textarea id="content" name="content" style="WIDTH: 100%; HEIGHT: 400px">input</textarea>
<script type="text/javascript">
var oFCKeditor = new FCKeditor('content') ;
oFCKeditor.BasePath = "/TestFCKeditor/FCKeditor/" ;
oFCKeditor.Height = 400;
oFCKeditor.ToolbarSet = "Default" ;
oFCKeditor.ReplaceTextarea();
</script>
<input type="submit" value="Submit">
</td></tr></table>
</form>

<%--
<form action="show.jsp" method="post" target="_blank">
<%
FCKeditor oFCKeditor ;
oFCKeditor = new FCKeditor( request, "content" ) ;
oFCKeditor.setBasePath( "/TestFCKeditor/FCKeditor/" ) ;
oFCKeditor.setValue( "input" );
out.println( oFCKeditor.create() ) ;
%>
<br>
<input type="submit" value="Submit">
</form>
--%>

d文g/TestFCKeditor/show.jsp:
<%
String content = request.getParameter("content");
out.print(content);
%>

8.览http://localhost:8080/TestFCKeditor/test.jsp
ok!




见酒晕 2007-08-08 17:03 发表评论
]]>
[摘录]setTimeout 和setInterval 区别http://www.tkk7.com/franlk/articles/135283.html见酒晕见酒晕Wed, 08 Aug 2007 08:36:00 GMThttp://www.tkk7.com/franlk/articles/135283.htmlhttp://www.tkk7.com/franlk/comments/135283.htmlhttp://www.tkk7.com/franlk/articles/135283.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/135283.htmlhttp://www.tkk7.com/franlk/services/trackbacks/135283.html摘录地址:http://www.chinahtml.com/webdesign/3/2006/javascript-11394039893441.shtml

window对象有两个主要的定时ҎQ分别是setTimeout ?setInteval 他们的语法基本上相同Q但是完成的功能取有区别?br>
  setTimeoutҎ是定时程序,也就是在什么时间以后干什么。干完了拉?在页面不h的情况下)?br>
  setIntervalҎ则是表示间隔一定时间反复执行某操作?br>
  如果用setTimeout实现setInerval的功能,需要在执行的程序中再定时调用自己才行。如果要清除计数器需?Ҏ使用的方法不同,调用不同的清除方法:

  例如Qtttt=setTimeout('northsnow()',1000);

clearTimeout(tttt);

  或者:

tttt=setInterval('northsnow()',1000);

clearInteval(tttt);

  举一个例子:

<div id="liujincai"></div>
<input type="button" name="start" value="start" onclick='startShow();'>
<input type="button" name="stop" value="stop" onclick="stop();">
<script language="javascript">
var intvalue=1;
var timer2=null;
function startShow()
{
liujincai.innerHTML=liujincai.innerHTML + " " + (intvalue ++).toString();
timer2=window.setTimeout("startShow()",2000);
}
function stop()
{
window.clearTimeout(timer2);
}
</script>

  或者:

<div id="liujincai"></div>
<input type="button" name="start" value="start" onclick='timer2=window.setInterval("startShow()",2000);//startShow();'>
<input type="button" name="stop" value="stop" onclick="stop();">
<script language="javascript">
var intvalue=1;
var timer2=null;
function startShow()
{
liujincai.innerHTML=liujincai.innerHTML + " " + (intvalue ++).toString();
}
function stop()
{
window.clearInterval(timer2);
}
</script>

见酒晕 2007-08-08 16:36 发表评论
]]>
[摘录]|页制作素材下蝲http://www.tkk7.com/franlk/articles/123321.html见酒晕见酒晕Mon, 11 Jun 2007 02:45:00 GMThttp://www.tkk7.com/franlk/articles/123321.htmlhttp://www.tkk7.com/franlk/comments/123321.htmlhttp://www.tkk7.com/franlk/articles/123321.html#Feedback1http://www.tkk7.com/franlk/comments/commentRss/123321.htmlhttp://www.tkk7.com/franlk/services/trackbacks/123321.html摘录地址:http://iyuer.com/ilank/article.asp?id=57

一些素材资源(很不错的Q各U类型~~欢q来看~
软gc?/span>
三林在线 软g下蝲好去?/font>
Photoshop CS 8.01 体中文零售版 
Photoshop CS2 9.0 体中文正式光盘版
内存256M?56M以下不推?.0?br>
CorelDraw 12 完美中文?/font>
据说及绘?矢量/排版设计于一w的王道工具.非专业h士\q?..
Fireworks V8.0 官方体中文正式版
最常见到的web囑փ动态图像制作Y?普及度堪比Photoshop
Dreamweaver V8.0 官方体中文正式版
|页制作软gQ与Fireworks、Flash 传说中的三剑客```嘎嘎~
Photoworks V1.5汉化?/font>

韩的一Ƅ囑փ加相框的YӞ常见的胶带相框卡角相框等均能完成
Ulead GIF Animator 5.0汉化正式特别?/font>
GIF制作软gQ内|许多效?br>
PhotoImpact v10.0 体中文汉化版

GIF制作软gQ内|许多效?br>
素材c?/span>
童话公主de舞台
N多东?br>
田园屋下蝲

多类资源下蝲
gh码头
字体.|页素材.代码教学包含
nowstop
字体.图标素材.皮肤模板==
韩国
韩国某网`呵呵 我韩语有?nbsp;囄.W刷.样式包含

囄c`~` 
CGFAN
囑֛图还是图`字字字还是字- -`~大家砸我?br>
l典桌面资源?/font>
实不错~~Q?br>伊美?/font>
比较丰富的一个~恩`

dofotoq面设计ƣ赏
ilank无聊的时候会q去吓逛~~~ 

女qde_֓素材
ƣ儿友情提供`Q耶~Q很biang的说~Q么~3~

遐思素材屋

原点视线素材
真的很丰富啊~~~呵呵`都没旉看了~

字体
中文字体下蝲?/font>
ilankqxqq个``恩`q行`

英文字体下蝲
十分丰富哇~~~
K666字体下蝲 
中文 英文

《Photoshop6完全自学手册?/font>
强烈推荐q个韩站Q!
http://yoonmi.net/zboard/pds.php

【字体?/strong>
http://font.85888.com/
K666字体下蝲
http://www.web316.com/SoftList/Catalog_7_SoftTime_Desc_1.html
316资源|?/strong>
↑以上两站均是极全的中文字体下载站Q包含很多少见的华康、金梅等字体?nbsp;
也有很多有特点的英文字体QK666像素字体包含?/strong>

【图片?/strong>
http://www.youzi4.com/index.aspx
扫图地带
http://www.mydeskcity.com/
l典桌面
http://wallcoo.com/
壁纸?/strong>
http://www.imagegarden.net/
伊美?/strong>
http://www.tucoo.com/
N
http://show.poptang.com/
写真?/strong>
http://www.cgfan.com/bbs/index.asp
CGFAN

【网늴材?/strong>
http://zzi.cc/sck/sck1.htm
遐思素材屋↑素材/代码教学

http://www.pixelforest.cn/
像素林
http://engel.websozai.jp/
http://www.ran.co.jp/
http://www.geocities.jp/choco_asa/home.html
http://pokyaron.fc2web.com/sozai.htm
http://homepage3.nifty.com/iroempitsu/index.htm
http://love.vivian.jp/sozai/top.html
以上全是JP

http://www.netbei.com/Article/pic/pic2/200501/3322.html
图标

http://www.94200.com/freebgm/
免费|页播放器申?/strong>

http://yoonmi.net/scroll.htm
拉条代码生成?/strong>

【综合素材?/strong>
http://www.zyxr.com/
童话公主de舞台↑重点推荐

http://www.l-ky.com/DOWN/1/
田园屋下蝲↑多类资源下蝲

http://www.dearfish.com/home.htm
gh码头↑字体、网늴材、代码教学包?/strong>

http://www.snowstop.net/
snowstop↑字体、图标素材、皮肤模板等

http://yoonmi.net/zboard/pds.php
韩国?#8593;囄、笔列样式包?/strong>

‖馨玥童话‖综合资源素材网http://www.zyxr.com/Soft/Index.html
雪停在址资源|?a target=_blank>http://www.snowstop.net/



见酒晕 2007-06-11 10:45 发表评论
]]>
[摘录]html?amp;ltinput type="file"...&gt 讄默认?/title><link>http://www.tkk7.com/franlk/articles/113445.html</link><dc:creator>见酒晕</dc:creator><author>见酒晕</author><pubDate>Wed, 25 Apr 2007 02:53:00 GMT</pubDate><guid>http://www.tkk7.com/franlk/articles/113445.html</guid><wfw:comment>http://www.tkk7.com/franlk/comments/113445.html</wfw:comment><comments>http://www.tkk7.com/franlk/articles/113445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/franlk/comments/commentRss/113445.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/franlk/services/trackbacks/113445.html</trackback:ping><description><![CDATA[<br>  <p><span><input type="file" name=”file1”>  file</span><span>中的</span><span>value</span><span>是只ȝQ不能通过</span><span>document.all.file1.value=”c:\tmep\*.*”</span><span>Q这也是Z安全的考虑?/span></p> <p> </p> <p><span>但不是不能ؓ</span><span>file</span><span>讄默认|只支?/span><span>WINWOWS</span><span>Q?/span></p> <p><span><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"></span></p> <p><span><HTML></span></p> <p><span><HEAD></span></p> <p><span><TITLE> New Document </TITLE></span></p> <p><span><META NAME="Generator" CONTENT="EditPlus"></span></p> <p><span><META NAME="Author" CONTENT=""></span></p> <p><span><META NAME="Keywords" CONTENT=""></span></p> <p><span><META NAME="Description" CONTENT=""></span></p> <p><span> <script><span>   </span></span></p> <p><span> function init(){<span>   </span></span></p> <p><span><span>      </span>document.all.file1.focus();<span>   </span></span></p> <p><span><span>      </span>var WshShell=new<span>   </span>ActiveXObject("WScript.Shell");<span>   </span></span></p> <p><span><span>      </span>WshShell.sendKeys("C:\\WINDOWS\\System.dat");</span></p> <p><span> }<span>   </span></span></p> <p><span> </script> </span></p> <p><span></HEAD></span></p> <p> </p> <p><span><BODY onload="init()"><span>   </span></span></p> <p><span> <input id="file1" type="file" name="file1"></span></p> <p><span></BODY></span></p> <p><span></HTML></span></p> <img src ="http://www.tkk7.com/franlk/aggbug/113445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/franlk/" target="_blank">见酒晕</a> 2007-04-25 10:53 <a href="http://www.tkk7.com/franlk/articles/113445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[摘录]WWW的核心——HTTP协议http://www.tkk7.com/franlk/articles/112989.html见酒晕见酒晕Mon, 23 Apr 2007 09:05:00 GMThttp://www.tkk7.com/franlk/articles/112989.htmlhttp://www.tkk7.com/franlk/comments/112989.htmlhttp://www.tkk7.com/franlk/articles/112989.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/112989.htmlhttp://www.tkk7.com/franlk/services/trackbacks/112989.htmlhttp://henry2008.teeta.com/blog/data/58261.html


众所周知QInternet的基本协议是TCP/IP协议Q目前广泛采用的FTP、Archie Gopher{是建立在TCP/IP协议之上的应用层协议Q不同的协议对应着不同的应用?br>  WWW服务器用的主要协议是HTTP协议Q即文体传输协议。由于HTTP协议支持的服务不限于WWWQ还可以是其它服务,因而HTTP协议允许用户在统一的界面下Q采用不同的协议讉K不同的服务,如FTP、Archie、SMTP、NNTP{。另外,HTTP协议q可用于名字服务器和分布式对象管理?/p>

2.1 HTTP协议?/strong>
  HTTP是一个属于应用层的面向对象的协议Q由于其捗快速的方式Q适用于分布式媒体信息系l。它?990q提出,l过几年的用与发展Q得C断地完善和扩展。目前在WWW中用的是HTTP/1.0的第六版QHTTP/1.1的规范化工作正在q行之中Q而且HTTP-NG(Next Generation of HTTP)的徏议已l提出?br>  HTTP协议的主要特点可概括如下Q?br>1.支持客户/服务器模式?br>2.单快速:客户向服务器h服务Ӟ只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每U方法规定了客户与服务器联系的类型不同?br>׃HTTP协议单,使得HTTP服务器的E序规模,因而通信速度很快?br>3.灉|QHTTP允许传输Lcd的数据对象。正在传输的cd由Content-Type加以标记?br>4.无连接:无连接的含义是限制每ơ连接只处理一个请求。服务器处理完客LhQƈ收到客户的应{后Q即断开q接。采用这U方式可以节省传输时间?br>5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺状态意味着如果后箋处理需要前面的信息Q则它必重传,q样可能D每次q接传送的数据量增大。另一斚wQ在服务器不需要先前信息时它的应答p快?/p>

2.2 HTTP协议的几个重要概?/strong>
  1.q接(Connection)Q一个传输层的实际环,它是建立在两个相互通讯的应用程序之间?br>  2.消息(Message)QHTTP通讯的基本单位,包括一个结构化的八元组序列q过q接传输?br>  3.h(Request)Q一个从客户端到服务器的h信息包括应用于资源的Ҏ、资源的标识W和协议的版本号
  4.响应(Response)Q一个从服务器返回的信息包括HTTP协议的版本号、请求的状?例如“成功”?#8220;没找?#8221;)和文档的MIMEcd?br>  5.资源(Resource)Q由URI标识的网l数据对象或服务?br>  6.实体(Entity)Q数据资源或来自服务资源的回映的一U特D表C方法,它可能被包围在一个请求或响应信息中。一个实体包括实体头信息和实体的本n内容?br>  7.客户?Client)Q一个ؓ发送请求目的而徏立连接的应用E序?br>  8.用户代理(User agent)Q初始化一个请求的客户机。它们是览器、编辑器或其它用户工兗?br>  9.服务?Server)Q一个接受连接ƈ对请求返回信息的应用E序?br>  10.源服务器(Origin server)Q是一个给定资源可以在其上ȝ或被创徏的服务器?br>  11.代理(Proxy)Q一个中间程序,它可以充当一个服务器Q也可以充当一个客hQؓ其它客户机徏立请求。请求是通过可能的翻译在内部或经q传递到其它的服务器中。一个代理在发送请求信息之前,必须解释q且如果可能重写它?br>  代理l常作ؓ通过防火墙的客户机端的门P代理q可以作Z个帮助应用来通过协议处理没有被用户代理完成的h?br>  12.|关(Gateway)Q一个作为其它服务器中间媒介的服务器。与代理不同的是Q网x受请求就好象对被h的资源来说它是源服务器Q发求的客户机ƈ没有意识到它在同|关打交道?br>  |关l常作ؓ通过防火墙的服务器端的门P|关q可以作Z个协议翻译器以便存取那些存储在非HTTPpȝ中的资源?br>  13.通道(Tunnel)Q是作ؓ两个q接中的中介程序。一旦激z,通道便被认ؓ不属于HTTP通讯Q尽通道可能是被一个HTTPh初始化的。当被中l的q接两端关闭Ӟ通道便消失。当一个门?Portal)必须存在或中?Intermediary)不能解释中的通讯旉道被经怋用?br>  14.~存(Cache)Q反应信息的局域存储?/p>

2.3 HTTP协议的运作方?/strong>
  HTTP协议是基于请求/响应范式的。一个客h与服务器建立q接后,发送一个请求给服务器,h方式的格式ؓQ统一资源标识W、协议版本号Q后ҎMIME信息包括h修饰W、客h信息和可能的内容。服务器接到h后,l予相应的响应信息,其格式ؓ一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内宏V?br>  许多HTTP通讯是由一个用户代理初始化的ƈ且包括一个申请在源服务器上资源的h。最单的情况可能是在用户代理(UA)和源服务?O)之间通过一个单独的q接来完?见图2-1)?br>  当一个或多个中介出现在请求/响应链中Ӟ情况变得复杂一些。中介由三种Q代?Proxy)、网?Gateway)和通道(Tunnel)。一个代理根据URI的绝Ҏ式来接受hQ重写全部或部分消息Q通过URI的标识把已格式化q的h发送到服务器。网x一个接收代理,作ؓ一些其它服务器的上层,q且如果必须的话Q可以把h译l下层的服务器协议。一个通道作ؓ不改变消息的两个q接之间的中l点。当通讯需要通过一个中?例如Q防火墙{?或者是中介不能识别消息的内ҎQ通道l常被用? 
  表明了在用户代理(UA)和源服务?O)之间有三个中?A,B和C)。一个通过整个铄h或响应消息必ȝq四个连接段。这个区别是重要的,因ؓ一些HTTP通讯选择可能应用于最q的q接、没有通道的邻居,应用于链的终Ҏ应用于沿铄所有连接。尽图2-2是线性的Q每个参与者都可能从事多重的、ƈ发的通讯。例如,B可能从许多客h接收h而不通过AQƈ且/或者不通过C把请求送到AQ在同时它还可能处理A的请求?br>  M针对不作为通道的汇聚可能ؓ处理h启用一个内部缓存。缓存的效果是请求/响应链被~短Q条件是沉K的参与者之一h一个缓存的响应作用于那个请求。下图说明结果链Q其条g是针对一个未被UA或A加缓存的hQB有一个经qC来自O的一个前期响应的~存拯?br>  在Internet上,HTTP通讯通常发生在TCP/IPq接之上。缺省端口是TCP 80Q但其它的端口也是可用的。但qƈ不预C着HTTP协议在Internet或其它网l的其它协议之上才能完成。HTTP只预C着一个可靠的传输?br>  以上要介l了HTTP协议的宏观运作方式,下面介绍一下HTTP协议的内部操作过E?br>  首先Q简单介l基于HTTP协议的客?服务器模式的信息交换q程Q如?-4所C,它分四个q程Q徏立连接、发送请求信息、发送响应信息、关闭连接?br>  在WWW中,“客户”?#8220;服务?#8221;是一个相对的概念Q只存在于一个特定的q接期间Q即在某个连接中的客户在另一个连接中可能作ؓ服务器。WWW服务器运行时Q一直在TCP80端口(WWW的缺省端?监听Q等待连接的出现?br>  下面Q讨论HTTP协议下客?服务器模式中信息交换的实现?  1.建立q接   q接的徏立是通过甌套接?Socket)实现的。客h开一个套接字q把它约束在一个端口上Q如果成功,q当于建立了一个虚拟文件。以后就可以在该虚拟文g上写数据q过|络向外传送?br>  2.发送请?br>  打开一个连接后Q客h把请求消息送到服务器的停留端口上,完成提出h动作?br>  HTTP/1.0  h消息的格式ؓQ?br>  h消息=h?通用信息|h头|实体? CRLF[实体内容]
  h ?Ҏ hURL HTTP版本受CRLF
  斏V ?GET|HEAD|POST|扩展Ҏ
  U R  L=协议名称+宿主?目录与文件名
  h行中的方法描q指定资源中应该执行的动作,常用的方法有GET、HEAD和POST。不同的h对象对应GET的结果是不同的,对应关系如下Q?br>  对象      GET的结?br>  文g      文g的内?br>  E序      该程序的执行l果
  数据库查询   查询l果
  HEAD——要求服务器查找某对象的元信息,而不是对象本w?br>  POST——从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POSTҎ。POST主要用于发送HTML文本中FORM的内容,让CGIE序处理?br>  一个请求的例子为:
  GET http://WWW.swjtu.edu.cn/home.html HTTP/1.0
  头信息又UCؓ元信息,即信息的信息Q利用元信息可以实现有条件的h或应{??br>  h头——告诉服务器怎样解释本次hQ主要包括用户可以接受的数据cd、压~方法和语言{?br>  实体头——实体信息类型、长度、压~方法、最后一ơ修Ҏ间、数据有效期{?br>  实体——请求或应答对象本n?br>  3.发送响?br>  服务器在处理完客Lh之后Q要向客h发送响应消息?br>  HTTP/1.0的响应消息格式如下:
  响应消息=状态行(通用信息头|响应头|实体? CRLF 〔实体内宏V?br>  ???HTTP版本受状态码 原因叙述
  状态码表示响应cd
  1××  保留
  2××  表示h成功地接?br>  3××  为完成请求客户需q一步细化请?br>  4××  客户错误
  5××  服务器错?
  响应头的信息包括Q服务程序名Q通知客户h的URL需要认证,h的资源何时能使用?br>  4.关闭q接
  客户和服务器双方都可以通过关闭套接字来l束TCP/IP对话

 




见酒晕 2007-04-23 17:05 发表评论
]]>
[摘录]q一步理解HTTP协议中的GETQPOSThttp://www.tkk7.com/franlk/articles/112979.html见酒晕见酒晕Mon, 23 Apr 2007 08:40:00 GMThttp://www.tkk7.com/franlk/articles/112979.htmlhttp://www.tkk7.com/franlk/comments/112979.htmlhttp://www.tkk7.com/franlk/articles/112979.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/112979.htmlhttp://www.tkk7.com/franlk/services/trackbacks/112979.htmlhttp://henry2008.teeta.com/blog/data/58260.html

HTTP-GET和HTTP-POST

  HTTP-GET和HTTP-POST是用HTTP的标准协议动词,用于~码和传送变量名/变量值对参数Qƈ且用相关的h语义。每个HTTP-GET和HTTP-POST都由一pdHTTPh头组成,q些h头定义了客户端从服务器请求了什么,而响应则是由一pdHTTP应答头和应答数据l成Q如果请求成功则q回应答?br>
  HTTP-GET以用MIMEcdapplication/x-www-form-urlencoded的urlencoded文本的格式传递参数。Urlencoding是一U字W编码,保证被传送的参数由遵循规范的文本l成Q例如一个空格的~码?%20"。附加参数还能被认ؓ是一个查询字W串?br>
  与HTTP-GETcMQHTTP-POST参数也是被URL~码的。然而,变量?变量g作ؓURL的一部分被传送,而是攑֜实际的HTTPh消息内部被传送?/p>

Get ?Post 的区别两点:

一、这两者传递参数时所用的~码不一定是一L。在 Tomcat 中似?Get 的编码方式是Ҏ面中指定的~码方式Q?Post 则是一直用同一U编码方式,可在 Tomcat ?server.xml 中配|?/p>

二、?Get 的时候,参数会显C在地址栏上Q?Post 不会?/p>

所以,如果q些数据是中文数据而且是非敏感数据Q那么?getQ如果用戯入的数据不是中文字符而且包含敏感数据Q那么还是?post为好?/p>

表单提交中get和post方式的区别归U_下几点:

1. get是从服务器上获取数据Qpost是向服务器传送数据?br>2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字D一一对应Q在URL中可以看到。post是通过HTTP post机制Q将表单内各个字D与其内Ҏ|在HTML HEADER内一起传送到ACTION属性所指的URL地址。用L不到q个q程?br>3. 对于get方式Q服务器端用Request.QueryString获取变量的|对于post方式Q服务器端用Request.Form获取提交的数据?br>4. get传送的数据量较,不能大于2KB。post传送的数据量较大,一般被默认Z受限制。但理论上,IIS4中最大量?0KBQIIS5中ؓ100KB?br>5. get安全性非怽Qpost安全性较高?/p>

下面举一个简单的例子来说明它们的区别Q?/p>

<!-分别通过get和post方式提交表单-->
<FORM ACTION="getpost.asp" METHOD="get">
<INPUT TYPE="text" NAME="Text" VALUE="http://bluesea.blogcup.com"></INPUT>
<INPUT TYPE="submit" VALUE="Get方式"></INPUT>
</FORM>
<BR>
<FORM ACTION="getpost.asp" METHOD="post">
<INPUT TYPE="text" NAME="Text" VALUE="http://bluesea.blogcup.com"></INPUT>
<INPUT TYPE="submit" VALUE="Post方式"></INPUT>
</FORM>
<BR>

<% If Request.QueryString("Text") <> "" Then %>
通过get方式传递的字符串是Q?"<B><%= Request.QueryString("Text") %></B>"<BR>
<% End If %>

<% If Request.Form("Text") <> "" Then %>
通过Post方式传递的字符串是Q?"<B><%= Request.Form("Text") %></B>"<BR>
<% End If %>

 





见酒晕 2007-04-23 16:40 发表评论
]]>
[转脓]JavaScript LI格http://www.tkk7.com/franlk/articles/112939.html见酒晕见酒晕Mon, 23 Apr 2007 05:51:00 GMThttp://www.tkk7.com/franlk/articles/112939.htmlhttp://www.tkk7.com/franlk/comments/112939.htmlhttp://www.tkk7.com/franlk/articles/112939.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/112939.htmlhttp://www.tkk7.com/franlk/services/trackbacks/112939.html摘录地址Q?a >http://www.mltang.com/article/efd65c8e-07f9-4c9b-8b6b-edab9a9b46a4.html

//Javascript中ؓString对象dtrim
String.prototype.Trim  = function(){return this.replace(/(^\s*)|(\s*$)/g, "");}
String.prototype.LTrim = function(){return this.replace(/(^\s*)/g, "");}
String.prototype.Rtrim = function(){return this.replace(/(\s*$)/g, "");}


{?Q?br><input type=text name=txt size=10><br>
<input type=button value=check onclick="check1()">

<script language="Javascript"><!--
String.prototype.Trim  = function(){return this.replace(/(^\s*)|(\s*$)/g, "");}
function check1(){
  var tt = document.all.txt.value;
  var s;
  if (tt.Trim().length==0){
     alert("输入不能为空Q?);
     document.all.txt.value = "";
     return;}
  tt = tt.Trim();
  for (i = 0; i < tt.length; i++){
    s = tt.charCodeAt(i);
    if ((s==13) || (s==9)){
       alert("你输入的字符中含有tab或者回车键Q?);
       document.all.txt.value = tt;
       return; }
    }
  return;
  }
// --></script>



见酒晕 2007-04-23 13:51 发表评论
]]>
[摘录]Ajax实现查询助手http://www.tkk7.com/franlk/articles/102601.html见酒晕见酒晕Thu, 08 Mar 2007 07:14:00 GMThttp://www.tkk7.com/franlk/articles/102601.htmlhttp://www.tkk7.com/franlk/comments/102601.htmlhttp://www.tkk7.com/franlk/articles/102601.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/102601.htmlhttp://www.tkk7.com/franlk/services/trackbacks/102601.html摘录地址Q?a >http://www2.matrix.org.cn/resource/article/2006-06-28/Ajax+Query+Helper_44506.html

1       概述

1.1    查询助手功能介绍

在通常的BS软g目中,查询助手使用频率非常高,其功能是点击图标Q页面上元素的gؓ条gQ到后台查询l果Q弹出查询结果对话框Q选择U录Q关闭对话框Qƈ且把你选择的有兛_ҎC到爉面中指定的元素中。由于其友好的界面设计和操作性能Q对用户和设计开发h员都有很大的吸引力,但存在开发效率低Q复用性差Q复杂度较高{问题?br />
1.2    Ajax现状和项目实?/b>
随着Ajax的风靡全球,Google的推波助澜,优秀的界面风|局部刷新的全新感受Q给目一新的印象。但׃Ajax诸多javascript脚本和后台应用的复杂性,使ajax的推q困N重,国内的应用大多都是玩LQ距目实用q有不小的差距,包括MicrosoftQIBMQSUN都在U极d研发Q以提高目开发的实用性,降低开发难度。ؓ了用ajax在项目的实用性,针对查询助手功能的Ajax做了一些有益的试Q特别愿意和大家分n?br />
1.3    Ajax?/b>
|上关于Ajax的文章汗牛充栋,具体的Ajax理论可以到网上搜索,q儿只做单介l:

Ajax是Asynchronous JavaScript and XML的羃写。Ajaxq不是一门新的语a或技?它实际上是几Ҏ术按一定的方式l合在一在同q协作中发挥各自的作用Q它包括Q?br />
&Oslash;         使用XHTML和CSS标准化呈?br />
&Oslash;         使用DOM实现动态显C和交互

&Oslash;         使用XML和XSLTq行数据交换与处?br />
&Oslash;         使用XMLHttpRequestq行异步数据d;

&Oslash;         使用JavaScriptl定和处理所有数?br />
Ajax的工作原理相当于在用户和服务器之间加了—个中间?使用h作与服务器响应异步化。ƈ不是所有的用户h都提交给服务?像—些数据验证和数据处理等都交lAjax引擎自己来做,只有定需要从服务器读取新数据时再由Ajax引擎代ؓ向服务器提交h?br />

2       Ajax查询助手功能设计理念

查询助手功能设计的AJAX的设计主要集中在从前台的jsp面提出AjaxhQ所有的Ajaxh都提交给查询助手中间层,查询助手中间层自动创建查询助手具体实现类来实现查询助手的具体查询功能Q查询助手具体实现类实现数据库查询ƈl织传回前台数据文本。传到前台后自动选择不同的JavaScript函数来解析数据,q显C到面的Div或者直接显C到面元素中?br />
2.1    Ajax实现查询助手功能C意囑֦下:
image


3       Ajax实现详述

3.1    Jsp前台
在Jsp中,点击查询助手图标Q或者在输入框中打回车键Q则昄如图3-1界面QAjax从后台获取数据显C在前台面上方Q但此时面q未hQƈ且缺省单选按钮选中W一行,W一行背景色为绿艌Ӏ有两种操作可以选择Q?

1Q  选择是用上下方向键来选择U录Q上下键Ud时纪录背景色自动改变Q单选按钮也自动选择。当军_选择某一行纪录时Q点d车键?br />
2Q  选择使用鼠标Q当鼠标UdӞU录的背景色发生改变?br />
3Q  当点击回R键,或者点击鼠标左键时则相兛_容填充到具体的页面元素中Qƈ把输入焦点自动下Ud指定的输入框Qƈ关闭选择界面?br />
4Q  如果你不想选择Q也可以直接点击选择界面右上角的关闭图标


image
?-1

如果查询l果为没有纪录,则:

image
?-2

具体代码如下Q?br />
3.1.1   引入jsQcss文g

<link rel="stylesheet" href="<%=request.getContextPath()%>/tplife/css/maginfier.css" type="text/css">

<script type="text/javascript" src="<%=request.getContextPath()%>/js/ajax/maginfier.js"></script>



l织机构查询助手Q?br />

<br/><img src = "<%=request.getContextPath()%>/images/magifiericon.gif" onclick="orgMaginfier('<%=request.getContextPath()%>','selOrg','DivShim','orgId,orgCode,orgName','0,2,1','message','','');">

    <input type="text" id = "orgCode" style="width:300px" onkeydown="if(event.keyCode == 13){orgMaginfier('<%=request.getContextPath()%>','selOrg','DivShim','orgId,orgCode,orgName','0,2,1','message'); gnIsSelectCtrl = 1;}else{}">

    <input type="text" id = "orgName" style="width:300px">

    <input type="hidden" id = "orgId">

    

    <br/>        

      <div id="selOrg"  style="display:none; z-index:100" class="termFrame" ></div>    

       <iframe

        id="DivShim"

        src="javascript:false;"

        scrolling="no"

        frameborder="0"

        style="position:absolute; top:0px; left:0px; display:none;">

       </iframe>  




3.1.1.1       Js文g内容Q?br />

var xmlHttp;
var maginfierName ;
var displayName ;//昄l果Div
var displayIFrame;//昄l果IFrame
var posNames ;//回填面元素数组Q如currencyId,currencyAbbrName,currencyName
var valueIndexs;//回填所需值的列号Q如0,1,2
var nextPos;   //回填后focus的元素名
var serverPath;
var maginfierFunction;
var tableHead = new Array();


function createXMLHttpRequest() {
  
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
    
}
function keyDowm(obj, pos, value, maginfierName0, maginfierDisplayName, maginfierDisplayIFrame)
{
  if(event.keyCode == 13)//回R?br />  {
     filled(pos, value, maginfierDisplayName, maginfierDisplayIFrame);
  }
  else if(event.keyCode == 40)//上移?br />  {    
    document.getElementById(maginfierName0+"divrow" + obj).bgColor='';  
    
    var t = eval(obj) + 1;
    if(document.getElementById(maginfierName0+"divrow" + t) != null)
    {
        document.getElementById(maginfierName0+"divrow" + t).bgColor='#CCFF99';
    }    
    
  }
  else if(event.keyCode == 38)//下移?br />  {
    document.getElementById(maginfierName0+"divrow" + obj).bgColor='';  
    var t = eval(obj) - 1;
    if(t >= 0)
    {
       document.getElementById(maginfierName0+"divrow" + t).bgColor='#CCFF99';
    }
  }

}
function closeDiv(maginfierDisplayName, maginfierDisplayIFrame)
{
    _termFrame=getElement(maginfierDisplayName);
    _termFrame.style.display = 'none'    
   getElement(maginfierDisplayIFrame).style.display = 'none';
}
function operationRequest(queryString, postBlock) {  
    
    var url = serverPath + "/AjaxMaginfier?" +  queryString;
    
    createXMLHttpRequest();
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("POST", url, true);    
  //    postBlock = "获得界面元素";
  //讄大块数据传输postBlockQ这样可以解军_数据量传向后台?br />    xmlHttp.send(postBlock);
}
// 获得界面元素
function getElement(idString)
{
return(document.all?document.all[idString]:document.getElementById(idString));
}
// 鼠标Ud
function rollover(tdObject)
{
tdObject.bgColor='#CCFF99';
}
function rollout(tdObject)
{
tdObject.bgColor='';
}

function filled(keyStr, valueStr, maginfierDisplayName, maginfierDisplayIFrame)
{  
   keys = keyStr.split(",");
   values = valueStr.split("<c>");
  
   for(i = 0; i < keys.length; i++)
   {
      
      _test = getElement(keys[i]);
      _test.value = values[i];
   }      
   _termFrame=getElement(maginfierDisplayName);
   _termFrame.style.display = 'none'    
   getElement(maginfierDisplayIFrame).style.display = 'none';
   if(document.getElementById(nextPos) != null)
   {    
      document.getElementById(nextPos).focus();
   }
}

function responseDisplay() {      
    var responseText = xmlHttp.responseText;
    var responseContent = responseText.split("|");
    var dataText = responseContent[0];
   if(dataText.length == 0)
   {
       var displayStr =  '<table width="98%"><tr><td align="right" style="border-bottom:0px"><img src = "/fs/graphics/closeMaginfier.jpg" onclick="closeDiv(\''+displayName+'\',\''+displayIFrame+'\')"></td></tr></table><input type="radio" id="'+maginfierName+'rdoAlert" name="rdo"  onkeydown=" closeDiv(\''+displayName+'\',\''+displayIFrame+'\')">' + '<font class="sfont" color="red">没有W合条g的记录,点Q意键q回</font>';
       displayAlert(displayStr);
       return;
   }
    var rows = dataText.split("<r>");    
    var _t=[];    
    var cols;
    var pos = "\'" + posNames + "\'";    
    
    for(var i = 0; i < rows.length; i++) {
        cols = rows[i].split("<c>");      
        values = "\'" ;
        valuesIndexArray = valueIndexs.split(",");
        for( j = 0; j < valuesIndexArray.length; j++)
        {
            var temp = cols[eval(valuesIndexArray[j])];
            //回填时把null|换成空字符?br />            if(temp == 'null')
            {
                temp = '';
            }
            if(j < valuesIndexArray.length - 1)
            {
                values = values + temp + "<c>";
            }
            else
           {
               values = values + temp + "\'";
           }
        }  
        
        if(i == 0)
        {
           _t[i] = '<tr  class="maginfierBody" id = "'+maginfierName+'divrow0" onmouseover="rollover(this)" onmouseout="rollout(this)" ><td width="5"  align="center"><input type="radio" id="'+maginfierName+'rdo" name="rdo"  onkeydown=" keyDowm('+i+', '+pos+', '+values+',\''+maginfierName+'\',\''+displayName+'\',\''+displayIFrame+'\');" ></td>';
        }
        else
        {
            _t[i] = '<tr class="maginfierBody" id = "'+maginfierName+'divrow'+i+'" onmouseover="rollover(this)" onmouseout="rollout(this)"  ><td width="5"  align="center"><input type="radio" name="rdo"  onkeydown=" keyDowm('+i+', '+pos+', '+values+',\''+maginfierName+'\',\''+displayName+'\',\''+displayIFrame+'\');" ></td>';
        }
        //Ҏ表头昄相关数据    
        for(var j = 1 ; j < tableHead.length ; j++)
        {
            //在放大镜表格昄Ӟ把null|换成空格显C?br />            if(cols[j] == 'null')
            {
                cols[j] = " ";
            }
            _t[i] = _t[i] + '<td  onclick="filled('+pos+', '+values+',\''+displayName+'\',\''+displayIFrame+'\')"><span class="rs">'+cols[j]+'</span></td>';
        }
        _t[i] = _t[i] + '</tr>';
        
    }  
    
     var tableHeadStr = addMaginfierHeader();
    
    displayStr =  '<table width="98%"><tr><td align="right" style="border-bottom:0px"><img src = "/fs/graphics/closeMaginfier.jpg" onclick="closeDiv(\''+displayName+'\',\''+displayIFrame+'\')"></td></tr></table><table cellspacing="1" width="98%" cellpadding="1" class="ItemList">'+ tableHeadStr +_t.join('')+'</table> ';
    if(responseContent[1] != null)
    {
        pageParams = responseContent[1].split(",");
        prePageNo = parseInt(pageParams[2]) - 1;
        prePageFunction = maginfierFunction + "," +prePageNo+")";
        nextPageNo = parseInt(pageParams[2]) + 1;
        nextPageFunction = maginfierFunction + ", "+nextPageNo+")";
        
        displayStr += '<br> <a href="javascript:if('+prePageNo+' == 0){alert(\'已经是第一了\');}else{'+prePageFunction+'} ">上一?lt;/a>';
        displayStr += '<font class="sfont"> | W?+pageParams[2]+'?| </font> ';
        displayStr += '<a href="javascript:if('+nextPageNo+' > '+pageParams[1]+'){alert(\'已经是最后一了\'); }else{'+nextPageFunction+'}">下一?lt;/a>';
        displayStr += '<font class="sfont"> | ?+pageParams[1]+'?| ?+pageParams[0]+'?lt;/font>';      
    }
  
    displayMaginfier(displayStr);

}
function test()
{
    var a = '23,,,43,23';
    var b = a.split(",");
    alert(b.length);
}
function addMaginfierHeader()
{
    var tableHeadStr = '<tr class="maginfierTitle"><td width="5"  align="center" ></td>';
    for(i = 1 ; i < tableHead.length ; i++)
    {
        tableHeadStr = tableHeadStr + '<td align="center" >' + tableHead[i] + "</td>"
    }
    tableHeadStr = tableHeadStr + "</tr>";
    return tableHeadStr;
}
function displayAlert(displayStr)
{
    displayDiv = getElement(displayName);    
displayDiv.innerHTML = displayStr;
displayDiv.style.display='block';  

    IfrRef = getElement(displayIFrame);
IfrRef.style.width = displayDiv.offsetWidth;
    IfrRef.style.height = displayDiv.offsetHeight;
    IfrRef.style.top = displayDiv.style.top;
    IfrRef.style.left = displayDiv.style.left;
    IfrRef.style.zIndex = displayDiv.style.zIndex - 1;
    IfrRef.style.display = "block";

document.getElementById(maginfierName+"rdoAlert").checked = true;
document.getElementById(maginfierName+"rdoAlert").focus();
}
function displayMaginfier(displayStr)
{
    displayDiv = getElement(displayName);    
displayDiv.innerHTML = displayStr;
displayDiv.style.display='block';


    IfrRef = getElement(displayIFrame);
IfrRef.style.width = displayDiv.offsetWidth;
    IfrRef.style.height = displayDiv.offsetHeight;
    IfrRef.style.top = displayDiv.style.top;
    IfrRef.style.left = displayDiv.style.left;
    IfrRef.style.zIndex = displayDiv.style.zIndex - 1;
    IfrRef.style.display = "block";

document.getElementById(maginfierName+"divrow0").bgColor='#CCFF99';
document.getElementById(maginfierName+"rdo").checked = true;
document.getElementById(maginfierName+"rdo").focus();
}

/*具体攑֤镜页面处理方?/
function handleStateChange() {    
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {          
           responseDisplay();          
        }
    }
}
function initMaginfierParas(serverPath0, divName, iFrameName, posNames0, valueIndexs0, nextPos0)
{
    serverPath = serverPath0;
    displayName = divName;
    displayIFrame = iFrameName;
    posNames = posNames0;
    valueIndexs = valueIndexs0
    nextPos = nextPos0;
}

/*具体攑֤镜JavaScript*/

//l织机构攑֤?br />function orgMaginfier(serverPath0, divName, iFrameName, posNames0,valueIndexs0, nextPos0, orgCode, orgId, transTypeId, maginfierType, pageNo)
{    
initMaginfierParas(serverPath0, divName, iFrameName, posNames0, valueIndexs0, nextPos0);
maginfierName = 'OrgMaginfier' + divName;
maginfierFunction = "orgMaginfier(\'"+serverPath0+"\', \'"+divName+"\', \'"+iFrameName+"\', \'"+posNames0+"\',\'"+valueIndexs0+"\', \'"+nextPos0+"\', \'"+orgCode+"\', \'"+orgId+"\', \'"+transTypeId+"\', \'"+maginfierType+"\'";
    
    len = tableHead.length;
    tableHead.splice(0, len);
    tableHead[0] = "单位ID";
    tableHead[1] = "单位~号";
    tableHead[2] = "单位名称";      
    tableHead[3] = "单位英文名称";
    
    queryString = "maginfierClassName=OrgMaginfier&orgCode="+orgCode+"&orgId="+orgId+"&maginfierType="+maginfierType+"&transTypeId="+transTypeId+"&pageNo="+pageNo;
    
  operationRequest(queryString);
}



3.1.1.2       Css文g内容Q?br />
/* 界面样式 */

.termFrame{

       width:298px !important;

       width:500px;

       overflow:auto;

       height:360px;

       scrollbar-face-color: #FFFFCC; scrollbar-shadow-color: #FFFFCC; scrollbar-highlight-color: #FFFFCC; scrollbar-3dlight-color: #FFFFCC;  scrollbar-darkshadow-color: #6699CC; scrollbar-track-color: #FFFFCC; scrollbar-arrow-color: #99CCFF;

    

       margin-top:1px !important;

       margin-top:0;  

       border:1px solid #999999;

       background-color:#FFFFFF;

       position:absolute;

       cursor:hand;

       padding:2px;

       font-size:70%;

       z-index:100

       }

       .maginfierTitle {

BORDER-RIGHT: 1px; BORDER-TOP: 1px;BORDER-LEFT: 1px; BORDER-BOTTOM: 1px;BACKGROUND-COLOR: #456795; color: #FFFFFF;

}

       .maginfierBody {

        BORDER-RIGHT: 1px;BORDER-TOP: 1px;BORDER-LEFT: 1px;BORDER-BOTTOM: 1px;

}



3.1.2   当点L询助手图标时Q例如查询组l机构)Q?br />

function orgMaginfier(serverPath0, divName, iFrameName, posNames0,valueIndexs0, nextPos0, orgCode, orgId, transTypeId, maginfierType, pageNo)

{    

       initMaginfierParas(serverPath0, divName, iFrameName, posNames0, valueIndexs0, nextPos0);

       maginfierName = 'OrgMaginfier' + divName;      

       maginfierFunction = "orgMaginfier(\'"+serverPath0+"\', \'"+divName+"\', \'"+iFrameName+"\', \'"+posNames0+"\',\'"+valueIndexs0+"\', \'"+nextPos0+"\', \'"+orgCode+"\', \'"+orgId+"\', \'"+transTypeId+"\', \'"+maginfierType+"\'";

    

    len = tableHead.length;

    tableHead.splice(0, len);

    tableHead[0] = "单位ID";

    tableHead[1] = "单位~号";

    tableHead[2] = "单位名称";      

    tableHead[3] = "单位英文名称";

    

    queryString = "maginfierClassName=OrgMaginfier&orgCode="+orgCode+"&orgId="+orgId+"&maginfierType="+maginfierType+"&transTypeId="+transTypeId+"&pageNo="+pageNo;

    

  operationRequest(queryString);

}

3.1.3   Js中的处理h的函?br />function operationRequest(queryString, postBlock) {  

    

    var url = serverPath + "/AjaxMaginfier?" +  queryString;

    

    createXMLHttpRequest();

    xmlHttp.onreadystatechange = handleStateChange;

    xmlHttp.open("POST", url, true);    

  //    postBlock = "获得界面元素";

  //讄大块数据传输postBlockQ这样可以解军_数据量传向后台?br />
    xmlHttp.send(postBlock);

}



3.1.4   当数据传回前台后

//该函数的名称不要改变Q因为我在js文g中决定了用该函数来处理传回的数据

function handleStateChange() {    

    if(xmlHttp.readyState == 4) {

        if(xmlHttp.status == 200) {          

           responseDisplay();          

        }

    }

}



3.1.5   具体处理传回的数据:

function responseDisplay() {       

    var responseText = xmlHttp.responseText;

    var responseContent = responseText.split("|");

    var dataText = responseContent[0];

   if(dataText.length == 0)

   {

       var displayStr = rightSpace + '<img src = "/fs/graphics/closeMaginfier.jpg" onclick="closeDiv(\''+displayName+'\',\''+displayIFrame+'\')"><br><input type="radio" id="'+maginfierName+'rdoAlert" name="rdo"  onkeydown=" closeDiv(\''+displayName+'\',\''+displayIFrame+'\')">' + '<font class="sfont" color="red">没有W合条g的记录,点Q意键q回</font>';

       displayAlert(displayStr);

       return;

   }

    var rows = dataText.split(";");    

    var _t=[];    

    var cols;

    var pos = "\'" + posNames + "\'";    

    

    for(var i = 0; i < rows.length; i++) {

        cols = rows[i].split(",");      

        values = "\'" ;

        valuesIndexArray = valueIndexs.split(",");

        for( j = 0; j < valuesIndexArray.length; j++)

        {

            var temp = cols[eval(valuesIndexArray[j])];

            //回填时把null|换成空字符?br />
            if(temp == 'null')

            {

                temp = '';

            }

            if(j < valuesIndexArray.length - 1)

            {

                values = values + temp + ",";

            }

            else

           {

               values = values + temp + "\'";

           }

        }  

        

        if(i == 0)

        {

           _t[i] = '<tr  class="maginfierBody" id = "'+maginfierName+'divrow0" onmouseover="rollover(this)" onmouseout="rollout(this)" ><td width="5"  align="center"><input type="radio" id="'+maginfierName+'rdo" name="rdo"  onkeydown=" keyDowm('+i+', '+pos+', '+values+',\''+maginfierName+'\',\''+displayName+'\',\''+displayIFrame+'\');" ></td>';

        }

        else

        {

            _t[i] = '<tr class="maginfierBody" id = "'+maginfierName+'divrow'+i+'" onmouseover="rollover(this)" onmouseout="rollout(this)"  ><td width="5"  align="center"><input type="radio" name="rdo"  onkeydown=" keyDowm('+i+', '+pos+', '+values+',\''+maginfierName+'\',\''+displayName+'\',\''+displayIFrame+'\');" ></td>';

        }

        //Ҏ表头昄相关数据    

        for(var j = 0 ; j < tableHead.length ; j++)

        {

            //在查询助手表格显C时Q把null|换成空格显C?br />
            if(cols[j] == 'null')

            {

                cols[j] = " ";

            }

            _t[i] = _t[i] + '<td  onclick="filled('+pos+', '+values+',\''+displayName+'\',\''+displayIFrame+'\')"><span class="rs">'+cols[j]+'</span></td>';

        }

        _t[i] = _t[i] + '</tr>';

        

    } //昄表头内容

function addMaginfierHeader()

{

    var tableHeadStr = '<tr class="maginfierTitle"><td width="5"  align="center" ></td>';

    for(i = 0 ; i < tableHead.length ; i++)

    {

        tableHeadStr = tableHeadStr + '<td align="center" >' + tableHead[i] + "</td>"

    }

    tableHeadStr = tableHeadStr + "</tr>";

    return tableHeadStr;

}

//如果未查询到U录Q显C提CZ?

function displayAlert(displayStr)

{

    _termFrame=getElement(displayName);

    

       _termFrame.innerHTML = displayStr;

       // 昄l果

      

       _termFrame.style.display='block';

      

       IfrRef = getElement(displayIFrame);

       IfrRef.style.width = _termFrame.offsetWidth;

    IfrRef.style.height = _termFrame.offsetHeight;

    IfrRef.style.top = _termFrame.style.top;

    IfrRef.style.left = _termFrame.style.left;

    IfrRef.style.zIndex = _termFrame.style.zIndex - 1;

    IfrRef.style.display = "block";

      

       document.getElementById(maginfierName+"rdoAlert").checked = true;

      

       document.getElementById(maginfierName+"rdoAlert").focus();

      

}

//昄查询助手

function displayMaginfier(displayStr)

{

    _termFrame=getElement(displayName);

    

       _termFrame.innerHTML = displayStr;

       // 昄l果

       _termFrame.style.display='block';

       //setHidden(overlaySelEles);

       //_termFrame.style.visibility="visible";

       IfrRef = getElement(displayIFrame);

       IfrRef.style.width = _termFrame.offsetWidth;

    IfrRef.style.height = _termFrame.offsetHeight;

    IfrRef.style.top = _termFrame.style.top;

    IfrRef.style.left = _termFrame.style.left;

    IfrRef.style.zIndex = _termFrame.style.zIndex - 1;

    IfrRef.style.display = "block";

      

       document.getElementById(maginfierName+"divrow0").bgColor='#CCFF99';

       document.getElementById(maginfierName+"rdo").checked = true;

      

       document.getElementById(maginfierName+"rdo").focus();

}



3.2    Servlet后台
选择Servlet作ؓ后台Q是因ؓ如果采用Struts Action为后台处理程序,则必L定要q回的页面。而用Servlet则没有这个要求。默认返回到h面。而这个查询助手Servlet接受所有的查询助手hQ根据前C来的查询助手实现cdU参敎ͼ由Spring创徏查询助手实现cd象,该对象实C查询助手接口QMaginfierInterfaceQ,从而获取返回值文本。返回到前台?br />
3.2.1   具体代码如下Q?br />
3.2.1.1       查询助手Servlet

public void doGet(HttpServletRequest request, HttpServletResponse response)

                     throws ServletException, IOException {

              String maginfierClassName = request.getParameter("maginfierClassName");            

              MaginfierFactory factory = MaginfierFactory.getInstance();

              MaginfierInterface maginfier = factory.createMaginfier(maginfierClassName);

        String ret =  maginfier.getReturnValue(request);

        System.out.println("ret = " + ret);

              response.setContentType("text/xml;charset=GBK");

              PrintWriter out = response.getWriter();

                            

              out.write(ret);

              

              out.close();

       }



3.2.1.2       Web.xml配置
3.2.1.2.1      在Web.xml中配|查询助手Servlet

<servlet>

        <servlet-name>AjaxMaginfier</servlet-name>

        <servlet-class>com.iss.fs.web.module.example.AjaxMaginfier</servlet-class>

        <!—在pȝ初次启动Ӟ初始??->        

        <load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

        <servlet-name>AjaxMaginfier</servlet-name>

        <url-pattern>/AjaxMaginfier</url-pattern>

</servlet-mapping>



3.2.1.3       查询助手具体实现c?br />3.2.1.3.1      实现查询助手接口Ҏ

public class CurrencyMaginfier implements MaginfierInterface

{

       public String getReturnValue(HttpServletRequest request)

       {

              List list = null;

              StringBuffer results = new StringBuffer();

              CurrencyDAO dao = new CurrencyDAO();

              String currencyAbbrName = request.getParameter("currencyAbbrName");

              String responsibilityId = request.getParameter("responsibilityId");

              if(currencyAbbrName == null || currencyAbbrName.equals("") || currencyAbbrName.equals("undefined"))

              {

                     currencyAbbrName = "";

              }

              if(responsibilityId == null || responsibilityId.equals("") || responsibilityId.equals("undefined"))

              {

                     responsibilityId = "-1";

              }

              try

              {

                     list = dao.getMaginfierResults(currencyAbbrName, responsibilityId);

                    

              }

              catch (Exception ex)

              {

                     ex.printStackTrace();

              }

              if (list != null)

              {

                     Currency currency = null;                  

                     for(int i = 0 ; i < list.size(); i++)

                     {

                            currency = (Currency)list.get(i);

                            results.append(currency.getID()).append(",");

                            results.append(currency.getCurrencyAbbrName()).append(",");

                            results.append(currency.getCurrencyName());                          

                            if(i < (list.size() - 1))

                            {

                                   results.append(";");

                            }

                     }

              }

              return results.toString();

       }

}



3.3    技术难点解?/b>
3.3.1   查询助手函数参数设计Q?br />固定参数QserverPath, divName, iFrameName, posNames,valueIndexs, nextPos

serverPathQ表Cwebserver的地址Q如Q?myapp

divNameQ显C选择界面的Div名称

iFrameNameQ显C选择界面的Ifranme名称Q因为IE的缺Pdiv昄时不能覆盖下面的选择框,所以我们用Iframe作ؓdiv的底ѝ?br />
posNamesQ选择U录后回昄面元素Q如QorgId,orgName,orgCode

valueIndexsQ对应回N面元素,U录的列序号Q如 0,2,1

nextPosQ选择l束后要把输入焦点,UdC一个页面元素名U?br />
固定参数后面的参敎ͼ不同的查询助手有不同参数列表Q主要是条g数据?br />
3.3.2   查询助手选择界面的表头设计:
不同的查询助手选择界面有不同的表头Q我们用js的全局数组变量来存储,每个查询助手使用前都先清I头数l,使用splice(0, len)

len = tableHead.length;

    tableHead.splice(0, len);    

    tableHead[0] = "外部账户ID";

    tableHead[1] = "外部账户~号";

    tableHead[2] = "外部账户名称";

    tableHead[3] = "外部银行名称";

    tableHead[4] = "机构?;

    tableHead[5] = "联行?;



昄表头Q?br />

var tableHeadStr = '<tr class="maginfierTitle"><td width="5"  align="center" ></td>';

    for(i = 0 ; i < tableHead.length ; i++)

    {

        tableHeadStr = tableHeadStr + '<td align="center" >' + tableHead[i] + "</td>"

    }

tableHeadStr = tableHeadStr + "</tr>";



3.3.3   处理后台传来的数据:
3.3.3.1.1      接受数据Q?br />

var responseText = xmlHttp.responseText;



3.3.3.1.2      查询无纪录处理:

if(responseText.length == 0)

   {

       var displayStr = rightSpace + '<img src = "/fs/graphics/closeMaginfier.jpg" onclick="closeDiv()"><br><input type="radio" id="'+maginfierName+'rdoAlert" name="rdo"  onkeydown=" closeDiv()">' + '<font class="sfont" color="red">没有W合条g的记录,点Q意键q回</font>';

       displayAlert(displayStr);

       return;

   }



Onkeydown表示响应L键,则关闭查询助手选择界面?br />
Onclick 表示响应鼠标点击

3.3.3.1.3      昄查询l果Q?br />因ؓ我们在后台把查询数据装成文本传回前収ͼ所以到前台后要解析文本Q我不用xml文本Q数据封装规则是U录间用“;”隔,列之间用“,”隔R同样到前台后用相同的规则解析数据?br />
把文本数据分成若q行数据

var rows = responseText.split(";");



3.4    ȝ
Ajax实现查询助手功能是Ajax在项目中实战的一个小的例子Q根据以后的研发Q将会生更多更好的应用Q本人在文档的Ajax介部分引用了别的文档的说明,在查询助手的实现中借鉴了Google的Suggest设计理念QSuggest实现是直接从后台传来表格FrameQ后台定义显C逻辑Q在查询助手的设计中Q前台来军_昄逻辑Q后C提供数据Q实现数据和昄的分,q样׃造成前台需要解析数据文本,处理昄逻辑的Javascript函数Q显得前台的JavaScript比较多,但我认ؓq是可以接受的,因ؓAjax主要是前台逻辑。另外,Ajax查询助手的后台实现采用了Spring Bean理容器Q只是ؓ了后期扩展的方便性,借助Spring容器理的强大功能,实现cM工厂模式的功能?br />
关于作?/b>
努力Q在于我热爱我的事业Q与中国的Y件一赯向成熟,走向世界?br />联系作者:lijj_72@hotmail.com



见酒晕 2007-03-08 15:14 发表评论
]]>
[摘录]JavaScript 对象的反及应用 http://www.tkk7.com/franlk/articles/89327.html见酒晕见酒晕Thu, 21 Dec 2006 09:26:00 GMThttp://www.tkk7.com/franlk/articles/89327.htmlhttp://www.tkk7.com/franlk/comments/89327.htmlhttp://www.tkk7.com/franlk/articles/89327.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/89327.htmlhttp://www.tkk7.com/franlk/services/trackbacks/89327.htmlhttp://gis.javaeye.com/blog/24316

关键? JavaScript       

Java?NET都有着比较完善的反机Ӟ用来处理未知的对象ƈ获取它们的属性和Ҏ。JavaScript虽然没有完善的反体p,但在~程的时候还是可以通过代码设计来实现类似反的基本功能?/p>

一个JavaScript对象是否支持某种特定的属性或ҎQ?/p>

代码
  1. if (typeof(obj.property) != "undefined") {}  

q样声明比直接?if (obj.property)"来描q要更准,因ؓ当obj.property的gؓfalse?、null的时候,虽然该属性存在,但返回的l果却恰恰相反?/p>

如果要求更详细一些,查看该属性的具体cdQ可以用instanceof操作W:

代码
  1. if (obj instanceof PredefinedObj) {}  

但是Q当对obj对象q行条g的时候,如果多种条g的对象类型存在承关p,则需要注意代码的书写序Q例如:

代码
  1. function() ExamineType(obj) {   
  2.   if (obj instanceof Object) {   
  3.     alert("An Object");   
  4.   else if (obj instanceof Array) {   
  5.     alert("An Array");   
  6.   }   
  7.   }   
  8. }  

上述代码执行的结果会认ؓ原ؓArraycd的obj是一个ObjectQ因为Array本n是从Objectl承而来Q显Ӟ对Array的检放在前面会得到更精的l果。因此,使用instanceof来判断对象类型,需要注意当两个对象存在l承关系的时候,应该x顺序的问题Q进一步我们可以想刎ͼJSON创徏的对象不是Object是ArrayQ用instanceof来检JSON对象意义不大?/p>

利用JavaScript的反,我们可以~写一个函数来查对象是否有一个特定名U的函数Q然后利用该函数q行计算Q以此在JavaScript中实现接口的功能Qؓ在Ajax中用设计模式奠定基?/p>

代码
  1. //this.getWeight和this["getWeight"]意义相同   
  2. //判断对象是否存在指定名称的函?  
  3. Object.prototype.hasFunc = function(func) {   
  4.   return this && this[func] && this[func] instanceof Function;   
  5. }   
  6.   
  7. function hasWeight(obj) {   
  8.   return obj.hasFunc("getWeight");   
  9. }   
  10.   
  11. //判断参数是否为数值类?  
  12. function isNum(param) {   
  13.   return parseFloat(param) != NaN;   
  14. }   
  15.   
  16. //计算两个对象的重?  
  17. function calWeight(obj1, obj2) {   
  18.   var total = null;   
  19.   if (hasWeight(obj1) && hasWeight(obj2)) {   
  20.     var w1 = obj1.getWeight();   
  21.     var w2 = obj2.getWeight();   
  22.     if (isNum(w1) && isNum(w2)) {   
  23.       total = parseFloat(w1) + parseFloat(w2);   
  24.     }   
  25.   }   
  26.   return total;   
  27. }  

calWeight先判断两个对象是否均存在getWeight()函数Q然后检查getWeight()计算l果是否为数值类型,最后进行数值相加返回计结果。需要注意的是,parseFloat(param)函数能够除去param中非数字部分Q如果param=16pmQparseFloat (16pm)得到的结果是16。如果不使用parseFloat(param)函数对getWeight()计算l果q行验,那么会带来安全性的问题Q这U情况下可以对象的getWeight()设计回字W串或其他类型,在调用它之前我们是不知道JavaScript函数的返回类型的Q因?JavaScript函数没有预先定义的类型?/p>



见酒晕 2006-12-21 17:26 发表评论
]]>
[摘录]|页制作l典技?4?Cool!http://www.tkk7.com/franlk/articles/89004.html见酒晕见酒晕Wed, 20 Dec 2006 03:48:00 GMThttp://www.tkk7.com/franlk/articles/89004.htmlhttp://www.tkk7.com/franlk/comments/89004.htmlhttp://www.tkk7.com/franlk/articles/89004.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/89004.htmlhttp://www.tkk7.com/franlk/services/trackbacks/89004.htmlhttp://home.sunbo.com/show_hdr.php?xname=686QF01&dname=MRTO921&xpos=4

提示:使用前请把大写状态下"Q>"改ؓ写状态下?<>"


  01.让背景图不滚?

  IE览器支持一?Body 属?bgpropertiesQ它可以让背景不滚动:

  〈Body Background="囄文g" bgproperties="fixed"?

  02.让你的网|法另存ؓ

  QnoscriptQ<iframe src=*Q</iframeQ</noscriptQ?

  03.让IFRAME框架内的文档的背景透明

  Qiframe src="about:Qbody style=‘background:transparent‘>" allowtransparencyQ</iframeQ?

  04.止右键Q?

  Qbody oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false"onmouseup="document.selection.empty()"Q?

  05.q入面后立卌动刷斎ͼ

  Qmeta http-equiv="refresh" content="120;url=http://www.wodutom.com/cn083"Q?

  http://www.wodutom.com/cn083,q是你自q|址?

  06.打开H口x大化

  Qscript language="JavaScript"Q?

  Q?-- Begin

  self.moveTo(0,0)

  self.resizeTo(screen.availWidth,screen.availHeight)

  // End --Q?

  Q?scriptQ?

  07.能隐藏IFRAME的滚动条吗?我知道的三种Ҏ:

  1. 讄iframe scrolling="no"

  2. 被包含页body应用overflow:hidden

  3. 被包含页的body标签加scroll="no"

  08.加入背景音乐

  Qbgsound src="mid/windblue[1].mid" loop="-1"Q?只适用于IE Qembed src="music.mid" autostart="true" loop="true" hidden="true"Q?对Netscape ,IE 都适用

  09.嵌入|页

  Qiframe name="tt" src="01a.html" width="450" height="287" scrolling="Auto" frameborder="0"Q</iframeQ?

  10.跌{

  Qmeta http-equiv="refresh" content="3;URL=list.htm"Q?/p>

11.滚动

  QMARQUEE direction=up height=146 onmouseout=start() onmouseover=stop() scrollAmount=4Q</marqueeQ?

  12.l线分隔U?

  Qhr noshade size=0 color=#C0C0C0Q?

  13.q度方式

  Qmeta http-equiv="Page-Exit" content="revealTrans(Duration=3,Transition=5)"Q?

  Duration的gؓ|页动态过渡的旉Q单位ؓU?

  Transition是过渡方式,它的gؓ0?3Q分别对?4U过渡方式。如下表Q?

  0 盒状收羃 1 盒状攑ְ

  2 圆Ş收羃 3 圆Ş攑ְ

  4 ׃往?5 ׃往?

  6 从左臛_ 7 从右臛_

  8 垂直癑֏H?9 水^癑֏H?

  10 水^格状癑֏H?11垂直格状癑֏H?

  12 随意溶解 13从左右两端向中间展开

  14从中间向左右两端展开 15从上下两端向中间展开

  16从中间向上下两端展开 17 从右上角向左下角展开

  18 从右下角向左上角展开 19 从左上角向右下角展开

  20 从左下角向右上角展开 21 水^U状展开

  22 垂直U状展开 23 随机产生一U过渡方?

  15.如何控制横向和纵向滚动条的显隐?

  Qbody style="overflow-y:hidden"Q?Lx?

  Qbody style="overflow-x:hidden"Q?Ly?

  Qbody scroll="no"Q不?

  16.怎样?FrontPage2000 中加?Flash 动画?

  ?FrontPage2000 ?点击[插入]-Q[高]-Q[插g]Q在弹出的窗口中Q设|一?Flash 文g的大及其它信息Q确定即可?

  17.加入注释的格式是Q?

  ?-QL释内容…]--?

  18.怎样在网中加入 E-mail 链接q显C预定的主题?

  〈A href="mailto:Emailhost@263.net?subject=主题"〉……?a?

  19.定义本网关键字Q可以在〈Head〉?Head〉中加入如下代码Q?

  〈meta name="Keywords" content="china,enterprise,business,net"?

  Content 中所包含的就是关键字,你可以自行设|?

  q里有个技?你可以重复某一个单?q样可以提高自己|站的排行位|?如:

  〈meta name="Keywords" content="china,china,china,china"?

  20.IE5.0 的部分快捷键Q?

  A:打开查找功能QCtrl+F

  关闭览器窗口:Ctrl+W

  打开地址栏下拉列表框QF4

  ?斎ͼF5

  当前Web保存到收藏夹列表:Ctrl+D

  打开当前 IE H口的一个拷贝:Ctrl+N

  停止下蝲当前|页QEsc

  光标q速移动到|页的开_Home

  光标q速移动到|页的尾部:End

  打开新的地址键入H口QCtrl+O

  打开收藏夹:Ctrl+I

  打开历史记录文g夹:Ctrl+H

  打开览器设定的默认主页QAlt+HOME

  21.d到收藏夹Q?

  〈a href="javascript:window.external.addFavorite(?a href="http:///" target="_blank">http://链接?‘说明?;"〉添加到收藏夏V?a?

  22.设ؓ首页Q?

  〈a href=# onclick=this.style.behavior=‘url(#default#homepage)?this.setHomePage(?a href="http:///" target="_blank">http://链接?;〉设为首c?a?

  23.定制览器地址栏前的小图标Q?

  A:在网늚〈head〉?head〉间加入以下语句Q?

  〈link rel="shortcuticon" href="http://?icon.ico"?

  卛_。其?icon.ico ?16x16 的图标文Ӟ颜色不要过 16 艌Ӏ?

  24.把滚动条攑֜览器窗口的左边

  A:?QbodyQ?中加 dir=RTLQ即 Qbody dir=RTLQ?/p>



见酒晕 2006-12-20 11:48 发表评论
]]>
[摘录]解决中文q问题 http://www.tkk7.com/franlk/articles/41979.html见酒晕见酒晕Wed, 19 Apr 2006 10:26:00 GMThttp://www.tkk7.com/franlk/articles/41979.htmlhttp://www.tkk7.com/franlk/comments/41979.htmlhttp://www.tkk7.com/franlk/articles/41979.html#Feedback1http://www.tkk7.com/franlk/comments/commentRss/41979.htmlhttp://www.tkk7.com/franlk/services/trackbacks/41979.html阅读全文

见酒晕 2006-04-19 18:26 发表评论
]]>
[摘录]showModalDialog和showModelessDialog使用心得http://www.tkk7.com/franlk/articles/40408.html见酒晕见酒晕Tue, 11 Apr 2006 03:29:00 GMThttp://www.tkk7.com/franlk/articles/40408.htmlhttp://www.tkk7.com/franlk/comments/40408.htmlhttp://www.tkk7.com/franlk/articles/40408.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/40408.htmlhttp://www.tkk7.com/franlk/services/trackbacks/40408.html 本文摘自:http://xiang.cnblogs.com/archive/2005/12/13/265830.html

一、showModalDialog和showModelessDialog有什么不同?
  showModalDialogQ被打开后就会始l保持输入焦炏V除非对话框被关闭,否则用户无法切换CH口。类似alert的运行效果?
  showModelessDialogQ被打开后,用户可以随机切换输入焦点。对ȝ口没有Q何媄?最多是被挡住一下而以?P)

二、怎样才让在showModalDialog和showModelessDialog的超q接不弹出新H口Q?
  在被打开的网里加上<base target="_self">可以了。这句话一般是攑֜<html>?lt;body>之间的?

三、怎样才刷新showModalDialog和showModelessDialog里的内容Q?
  在showModalDialog和showModelessDialog里是不能按F5h的,又不能弹单。这个只能依靠javascript了,以下是相关代码:

<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="filename.htm" style="display:none">reload...</a>

  filename.htm替换成网늚名字然后它攑ֈ你打开的网里Q按F5可以刷CQ注意,q个要配?lt;base target="_self">使用Q不然你按下F5会弹出新H口的?

四、如何用javascriptxshowModalDialog(或showModelessDialog)打开的窗口?
  <input type="button" value="关闭" onclick="window.close()">
  也要配合<base target="_self">Q不然会打开一个新的IEH口Q然后再x的?

五、showModalDialog和showModelessDialog数据传递技巧?
  (作者语Q本来想用一问一{Ş式来写的Q但是我想不个怎么问,所以只好这样了?
  q个东西比较ȝQ我改了好几ơ了不是没办法说明白(语文水^来差?Q只好用个例子说明了?
  例子Q?
    现在需要在一个showModalDialog(或showModelessDialog)里读取或讄一个变量var_name

      一般的传递方式:
        window.showModalDialog("filename.htm",var_name)
        //传递var_name变量
      在showModalDialog(或showModelessDialog)d和设|时Q?
        alert(window.dialogArguments)//dvar_name变量
        window.dialogArguments="oyiboy"http://讄var_name变量
    q种方式是可以满的Q但是当你想在操作var_name同时再操作第二个变理var_id时呢Q就无法再进行操作了。这是q种传递方式的局限性?
    
      以下是我使用的传递方式:
        window.showModalDialog("filename.htm",window)
        //不管要操作什么变量,只直传递主H口的window对象
      在showModalDialog(或showModelessDialog)d和设|时Q?
        alert(window.dialogArguments.var_name)//dvar_name变量
        window.dialogArguments.var_name="oyiboy"http://讄var_name变量

        同时我也可以操作var_id变量
        alert(window.dialogArguments.var_id)//dvar_id变量
        window.dialogArguments.var_id="001"http://讄var_id变量

        同样q可以对ȝ口的M对象q行操作Q如form对象里的元素?
        window.dialogArguments.form1.index1.value="q是在设|index1元素的?

六、多个showModelessDialog的相互操作?
  因ؓ光说很费Ԍ我就L懒,直接用代码来说了Q如果不明白的话那就直接来信(oyiboy#163.net(使用时请?Ҏ@))问我吧?

  以下代码的主要作用是在一个showModelessDialog里移动别一个showModelessDialog的位|?

  L件的部䆾js代码?
  var s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px"Q?//打开控制H口
  var s2=showModelessDialog('about:blank',window,"dialogTop:200px;dialogLeft:300px"Q  //打开被控制窗?

  控制.htm的部份代码?
  <script>
    //操作位置数据Q因为窗口的位置数据?xxxpx"方式的,所以需要这L一个特D操作函数?
function countNumber(A_strNumber,A_strWhatdo)
{
A_strNumber=A_strNumber.replace('px','')
A_strNumber-=0
switch(A_strWhatdo)
{
case "-":A_strNumber-=10;break;
case "+":A_strNumber+=10;break;
}
return A_strNumber + "px"
}
  </script>
  <input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'-')" value="上移">
  <input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'-')" value="左移">
  <input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'+')" value="右移">
  <input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'+')" value="下移">

  以上关键部䆾是:
    H口命名方式Qvar s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px"Q?
    变量讉K方式Qwindow.dialogArguments.s2.dialogTop

  q个例子只是现实showModelessDialog与showModelessDialog之间的位|操作功能,通过q个原理Q在showModelessDialog之间怺控制各自的显C页面,传递变量和数据{。这要看各位的发挥了?/font>



见酒晕 2006-04-11 11:29 发表评论
]]>
[摘录]关于 window.showModalDialog ?openehttp://www.tkk7.com/franlk/articles/40393.html见酒晕见酒晕Tue, 11 Apr 2006 02:39:00 GMThttp://www.tkk7.com/franlk/articles/40393.htmlhttp://www.tkk7.com/franlk/comments/40393.htmlhttp://www.tkk7.com/franlk/articles/40393.html#Feedback0http://www.tkk7.com/franlk/comments/commentRss/40393.htmlhttp://www.tkk7.com/franlk/services/trackbacks/40393.html 本文摘自Q?/font> http://blog.dofy.net/?p=140  

使用 window.showModalDialog 打开的窗口没?opener 对象, q的给使用带来了很多麻? 以前一直也没用q这个东? 所以没有更多关? 今天一个朋友问到这个问? 于是上网搜烦了一? 扑ֈ了解x? 发上来供大家参?
首先来看?window.showModalDialog 的参?
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures]) ;
 
sURL : 打开H口的地址;
vArguments : 传递参?
sFeatures : H口属性列?

W一个参数是必须? 后两个可以省?
q里我们要利用的是W二个参? 原理是将父窗口的被控制对象以参数的Ş式传递到子窗? 在子H口中直接控制这个对象即?

举例来说:
parent.html
<script type="text/javascript">
function openWin(){
// 子窗口地址
var srcFile = "child.html";
// 子窗口属?br />var winFeatures = "dialogHeight:300px; dialogLeft:200px;";
// ?From ?ID 作ؓ参数传递到子窗?br />var obj = getForm;
// 打开子窗?br />window.showModalDialog(srcFile, obj, winFeatures);
}
</script>
<form id="getForm">
  回传|
  <input type="text" id="getValue" readOnly>
</form>
<input type="button" value="打开" onClick="openWin()">

child.html
<script type="text/javascript">
function send(){
  // 获取参数传递的对象
  var obj = window.dialogArguments;
  // 控制对象
  obj.getValue.value = 'from Child';
}
</script>
<a href="#" onclick="send();">Send</a>

q行 parent.html , 单击 [打开] 按钮弹出对话? 点击 Send 链接g递到 parent 的文本框?
传递的参数当然也可以是其他对象, 例如 window . 值得注意的是传递的是对? 而不是字W串.



见酒晕 2006-04-11 10:39 发表评论
]]>
վ֩ģ壺 ձһƵۿ| jizzѹۿƵ| Ů18ëƬaëƬƵ| Ů۳Ƶ߿| ޾Ʒav߹ۿ| ëƬڵ߳| ҹ޾Ʒ| ޾ƷԲ߹ۿ| һѹۿwwwƵ| ݺݺݰƵ| 91޹߲ҹ| ߲Ƶ| Ʒվa| ҹƵ| 33333| AV뾫Ʒɫҹ߹ۿ| պƷѵӰ| ɫAAVѲ| ù͵v͵v| ޾Ʒ1ҳ| þþþavӰ| 97ɫ׳Ƶ| ѹۿ91Ƶ| һؼaaaaëƬѹۿ| ۺĻ| ҹwwwʪô| ޹Ʒ| ȫƵѸ| 91Ƶַ| ѹվ߹ۿ| žžƷAVպ| ޳AVƬþ| gvС߹ۿ| ޹ۺϾþ| Ѹ弤Ƶ| 91ƷѾþù鶹| Ƶ߹ۿ| ޾Ʒ˾þվ| | ޳AVƬþ| ޳aƬ߹|