??xml version="1.0" encoding="utf-8" standalone="yes"?>妇女自拍偷自拍亚洲精品,中文字幕在线观看亚洲日韩,亚洲 日韩 色 图网站http://www.tkk7.com/hua/archive/2007/09/18/146061.html?/dc:creator>?/author>Tue, 18 Sep 2007 01:44:00 GMThttp://www.tkk7.com/hua/archive/2007/09/18/146061.htmlhttp://www.tkk7.com/hua/comments/146061.htmlhttp://www.tkk7.com/hua/archive/2007/09/18/146061.html#Feedback0http://www.tkk7.com/hua/comments/commentRss/146061.htmlhttp://www.tkk7.com/hua/services/trackbacks/146061.html下蝲http://www.apache.org/dist/ant/binaries下的apache-ant-1.6.1-bin.zip
接压安装?

ant的配法:(x)
1。解压ant的包到本地目录?
2。在环境变量中设|ANT_HOMEQgؓ(f)你的安装目录?
3。在环境变量中设|JAVA_HOMEQgؓ(f)你的jdk安装目录?
4。把ANT_HOME/bin加到你系l的path目录中去?

SET ANT_HOME=D:\jakarta-ant-1.5.1 //注意是Ant的安装目录,不是bin子目?
SET PATH=%PATH%;%ANT_HOME%\bin;


在cmd模式下输?ant -version回RQ看到输?gu)明配|成功?



]]>
开发JSP&Servlet http://www.tkk7.com/hua/archive/2007/07/02/127470.html?/dc:creator>?/author>Mon, 02 Jul 2007 03:44:00 GMThttp://www.tkk7.com/hua/archive/2007/07/02/127470.htmlhttp://www.tkk7.com/hua/comments/127470.htmlhttp://www.tkk7.com/hua/archive/2007/07/02/127470.html#Feedback0http://www.tkk7.com/hua/comments/commentRss/127470.htmlhttp://www.tkk7.com/hua/services/trackbacks/127470.html阅读全文

]]>
Proxoolq接?/title><link>http://www.tkk7.com/hua/archive/2007/05/21/118888.html</link><dc:creator>?/dc:creator><author>?/author><pubDate>Mon, 21 May 2007 07:25:00 GMT</pubDate><guid>http://www.tkk7.com/hua/archive/2007/05/21/118888.html</guid><wfw:comment>http://www.tkk7.com/hua/comments/118888.html</wfw:comment><comments>http://www.tkk7.com/hua/archive/2007/05/21/118888.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hua/comments/commentRss/118888.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hua/services/trackbacks/118888.html</trackback:ping><description><![CDATA[<br>      Proxoolq接池是sourceforge下的一个开源项?q个目提供一个健壮、易用的q接池,最为关键的是这个连接池提供监控的功能,方便易用Q便于发现连接泄漏的情况。开源项目地址是:(x)<a ><br><u><font color=#0000ff>http://proxool.sourceforge.net/</font></u></a><br><br>配置q接池比较的单:(x)<br>1、将下蝲的包解开Q从包中的lib目录下将proxool-xxx.jar(xxx随着不同的版本号变化)加入你的工程中?br>2、配|数据源Q?br>      在web-info下徏立文Ӟ(x)proxool.xmlQ文件内容如下:(x)<br><font style="BACKGROUND-COLOR: #d3d3d3"><font size=2><?xml version="1.0" encoding="UTF-8"?><br><something-else-entirely><br>  <proxool><br>    <alias>Develop</alias><br>    <driver-url>jdbc:mysql://localhost/kuanxue</driver-url><br>    <driver-class>com.mysql.jdbc.Driver</driver-class><br>    <driver-properties><br>      <property name="user" value="root"/><br>      <property name="password" value=""/><br>      <property name="useUnicode" value="true"/><br>      <property name="characterEncoding" value="GBK"/><br>    </driver-properties><br>    <maximum-connection-count>500</maximum-connection-count><br>    <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql><br>  </proxool><br> </something-else-entirely><br></font><br><font style="BACKGROUND-COLOR: #ffffff">3、配|web.xml<br>在web.xml中增加:(x)<br><font style="BACKGROUND-COLOR: #d3d3d3" size=2><!-- 配置初始化servlet,在web容器加蝲的时候自动加载配|文Ӟ如果不是webE序Q这个部分就需要通过开发接口来初始化了(jin) --><br><servlet><br>     <servlet-name>proxoolInitialServlet</servlet-name><br> <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class><br>     <init-param><br>       <param-name>xmlFile</param-name><br>       <param-value>WEB-INF/proxool.xml</param-value><br>     </init-param><br>     <load-on-startup>1</load-on-startup><br>   </servlet><br><!--配置监控servlet,其实如果不想监控的话Q可以不?-><br>   <servlet><br>    <servlet-name>dbpoolAdmin</servlet-name><br>    <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class><br>  </servlet><br>   <servlet-mapping><br>    <servlet-name>dbpoolAdmin</servlet-name><br>    <url-pattern>/dbpool</url-pattern><br>  </servlet-mapping><br></font><br></font></font><font style="BACKGROUND-COLOR: #ffffff">4、在E序中调?br>一般我获取connection的行为封装ؓ(f)一个工厂模式,便于多种情况的切换,以下是其中proxool数据源的getConnectionҎ(gu)的实玎ͼ(x)<br><br></font><font style="BACKGROUND-COLOR: #d3d3d3" size=2>public Connection getConnection() {<br>        try{<br>            Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");<br>            return DriverManager.getConnection("proxool.Develop");<br>        }catch(Exception ex){<br>            ex.printStackTrace();<br>        }<br>        return null;<br>    }<br><br><font style="BACKGROUND-COLOR: #ffffff">5、应用开发:(x)<br>      在实际的应用中,我们可能需要更多的功能Q比如监控功能不够强大,权限不好控制Q我们希望能够编写出更强大的功能Q比如杀M些大的查询语句等Q记录各U查询语句占用的旉Q这需要对开发接口进行进一步的研究?jin)?br></font></font> <img src ="http://www.tkk7.com/hua/aggbug/118888.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hua/" target="_blank">?/a> 2007-05-21 15:25 <a href="http://www.tkk7.com/hua/archive/2007/05/21/118888.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>window.showModalDialog ?/title><link>http://www.tkk7.com/hua/archive/2007/04/28/114250.html</link><dc:creator>?/dc:creator><author>?/author><pubDate>Sat, 28 Apr 2007 01:29:00 GMT</pubDate><guid>http://www.tkk7.com/hua/archive/2007/04/28/114250.html</guid><wfw:comment>http://www.tkk7.com/hua/comments/114250.html</wfw:comment><comments>http://www.tkk7.com/hua/archive/2007/04/28/114250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hua/comments/commentRss/114250.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hua/services/trackbacks/114250.html</trackback:ping><description><![CDATA[基本介绍Q?br>showModalDialog() (IE 4+ 支持)<br>showModelessDialog() (IE 5+ 支持)<br>window.showModalDialog()Ҏ(gu)用来创徏一个显CHTML内容的模态对话框?br>window.showModelessDialog()Ҏ(gu)用来创徏一个显CHTML内容的非模态对话框?br><br>使用Ҏ(gu)Q? <div id="rnxp37n" class=code>vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])<br>vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])</div> <br>参数说明Q?br>sURL--<br>必选参敎ͼcdQ字W串。用来指定对话框要显C的文档的URL?br>vArguments--<br>可选参敎ͼcdQ变体。用来向对话框传递参数。传递的参数cd不限Q包括数l等。对话框通过window.dialogArguments来取得传递进来的参数?br>sFeatures--<br>可选参敎ͼcdQ字W串。用来描q对话框的外观等信息Q可以用以下的一个或几个Q用分号“;”隔开?br>1.dialogHeight :对话框高度,不小于1Q0pxQテQ4中dialogHeight ?dialogWidth 默认的单位是emQ而テQ5中是pxQؓ(f)方便其见Q在定义modal方式的对话框Ӟ用px做单位?br>2.dialogWidth: 对话框宽度?br>3.dialogLeft: dq左的距R?br>4.dialogTop: dq上的距R?br>5.center: {yes | no | 1 | 0 }Q窗口是否居中,默认yesQ但仍可以指定高度和宽度?br>6.help: {yes | no | 1 | 0 }Q是否显C帮助按钮,默认yes?br>7.resizable: {yes | no | 1 | 0 } QテQ5Q]Q是否可被改变大。默认no?br>8.status: {yes | no | 1 | 0 } QIE5+Q:(x)是否昄状态栏。默认ؓ(f)yes[ Modeless]或no[Modal]?br>9.scroll:{ yes | no | 1 | 0 | on | off }Q指明对话框是否昄滚动条。默认ؓ(f)yes?br>下面几个属性是用在HTA中的Q在一般的|页中一般不使用?br>10.dialogHide:{ yes | no | 1 | 0 | on | off }Q在打印或者打印预览时对话框是否隐藏。默认ؓ(f)no?br>11.edge:{ sunken | raised }Q指明对话框的边框样式。默认ؓ(f)raised?br>12.unadorned:{ yes | no | 1 | 0 | on | off }Q默认ؓ(f)no?br><br>参数传递:(x)<br>1.要想对话框传递参敎ͼ是通过vArguments来进行传递的。类型不限制Q对于字W串cdQ最大ؓ(f)4096个字W。也可以传递对象,例如Q?br>-------------------------------<br>parent.htm <div id="frzv9bd" class=code><script><br>var obj = new Object();<br>obj.name="pin7";<br>window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");<br></script><br>modal.htm<br><script><br>var obj = window.dialogArguments<br>alert("(zhn)传递的参数为:(x)" + obj.name)<br></script></div> -------------------------------<br>2.可以通过window.returnValue向打开对话框的H口q回信息Q当然也可以是对象。例如:(x)<br>------------------------------<br>parent.htm <div id="7f1df7r" class=code><script><br>str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");<br>alert(str);<br></script><br>modal.htm<br><script><br>window.returnValue="<a ;<br></script></div> <img src ="http://www.tkk7.com/hua/aggbug/114250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hua/" target="_blank">?/a> 2007-04-28 09:29 <a href="http://www.tkk7.com/hua/archive/2007/04/28/114250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Meta标签详解 [转]http://www.tkk7.com/hua/archive/2007/04/28/114242.html?/dc:creator>?/author>Sat, 28 Apr 2007 01:14:00 GMThttp://www.tkk7.com/hua/archive/2007/04/28/114242.htmlhttp://www.tkk7.com/hua/comments/114242.htmlhttp://www.tkk7.com/hua/archive/2007/04/28/114242.html#Feedback0http://www.tkk7.com/hua/comments/commentRss/114242.htmlhttp://www.tkk7.com/hua/services/trackbacks/114242.html
Meta标签详解
  引言 
  (zhn)的个h|站即做得再精彩,?#8220;瀚如?#8221;的网l空间中Q也如一叶扁舟不易ؓ(f)人发玎ͼ如何推广
个h|站Qh们首先想到的Ҏ(gu)无外乎以下几U:(x)  
  ● 在搜索引擎中d自己的个人网站  
  ● 在知名网站加入你个h|站的链?nbsp;
  ● 在论坛中发帖子宣传你的个人网?nbsp;
  很多人却忽视?jin)HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个h|站被搜索到的可能性,有兴吗Q谁我来重新认识一下META标签吧!   META标签是HTML语言HEAD区的一个辅助性标{,它位于HTML文档头部?lt;HEAD>标记?lt;TITLE>标记之间Q它提供用户不可见的信息。meta标签通常用来为搜索引擎robots定义面主题Q或者是定义用户览器上的cookieQ它可以用于鉴别作者,讑֮面格式Q标注内Ҏ(gu)要和关键字;q可以设|页面其可以根据你定义的时间间隔刷新自?以及(qing)讄RASC内容{Q等{?nbsp;

  详细介绍 
  下面介绍一些有?nbsp;标记的例子及(qing)解释?nbsp;
  META标签分两大部分:(x)HTTP标题信息(HTTP-EQUIV)和页面描qC?NAME)?nbsp;

  ★HTTP-EQUIV 
  HTTP-EQUIVcM于HTTP的头部协议,它回应给览器一些有用的信息Q以帮助正确和精地昄|页内容。常用的HTTP-EQUIVcd有:(x) 

  1、Content-Type和Content-Language (昄字符集的讑֮) 
  说明Q设定页面用的字符集,用以说明主页制作所使用的文字已l语aQ浏览器?x)根据此来调用相应的字符集显Cpage内容?nbsp;
  用法Q?lt;Meta http-equiv="Content-Type" Content="text/html; Charset=gb2312">
      <Meta http-equiv="Content-Language" Content="zh-CN"> 
  注意Q 该META标签定义?jin)HTML面所使用的字W集为GB2132Q就是国标汉字码。如果将其中?#8220;charset=GB2312”替换?#8220;BIG5”Q则该页面所用的字符集就是繁体中文Big5码。当你浏览一些国外的站点ӞIE览器会(x)提示你要正确昄该页面需要下载xx语支持。这个功能就是通过dHTML面META标签的Content-Type属性而得知需要用哪U字W集昄该页面的。如果系l里没有装相应的字符集,则IE提CZ载。其他的语言也对应不同的charsetQ比如日文的字符集是“iso-2022-jp ”Q韩文的?#8220;ks_c_5601”?br>      
  Content-Type的Contentq可以是Qtext/xml{文档类型;
  Charset选项QISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii, x-mac-roman, iso-8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw, x-cns11643-1,x-cns11643-2{字W集QContent-Language的Contentq可以是QEN、FR{语a代码?nbsp;
  2、Refresh (h) 
   说明Q让|页多长旉Q秒Q刷新自己,或在多长旉后让|页自动链接到其它网c(din)?br>   用法Q?lt;Meta http-equiv="Refresh" Content="30">
      <Meta http-equiv="Refresh" Content="5; Url=::URL::http://www.xia8.net">
   注意Q其中的5是指停留5U钟后自动刷新到URL|址?nbsp;
  3、Expires (期限) 
   说明Q指定网在~存中的q期旉Q一旦网过期,必须到服务器上重新调阅?br>   用法Q?lt;Meta http-equiv="Expires" Content="0">
      <Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT">
   注意Q必M用GMT的时间格式,或直接设?(数字表示多少旉后过??nbsp;
  4、Pragma (cach模式) 
   说明Q禁止浏览器从本地机的缓存中调阅面内容?br>   用法Q?lt;Meta http-equiv="Pragma" Content="No-cach">
   注意Q网不保存在缓存中Q每ơ访问都h面。这栯定,讉K者将无法脱机览?nbsp;
  5、Set-Cookie (cookie讑֮) 
  说明Q浏览器讉K某个面时会(x)它存在~存中,下次再次讉K时就可从~存中读取,以提高速度。当你希望访问者每ơ都h你广告的图标Q或每次都刷C的计数器Q就要禁用缓存了(jin)。通常HTML文g没有必要用~存Q对于ASP{页面,可以用禁用缓存,因ؓ(f)每次看到的页面都是在服务器动态生成的Q缓存就失去意义。如果网过期,那么存盘的cookie被删除?br>   用法Q?lt;Meta http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday,
       21-Oct-98 16:14:21 GMT; path=/">
   注意Q必M用GMT的时间格式?nbsp;
  6、Window-target (昄H口的设? 
   说明Q强刉面在当前H口以独立页面显C?br>   用法Q?lt;Meta http-equiv="Widow-target" Content="_top">
   注意Q这个属性是用来防止别h在框枉调用你的面。Content选项Q_blank、_top、_self、_parent?nbsp;
  7、Pics-label (|页RSAC{评定)
   说明Q在IE的Internet选项中有一内容设|,可以防止览一些受限制的网站,而网站的限制U?br>      别就是通过该参数来讄的?br>   用法Q?lt;META http-equiv="Pics-label" Contect=
               "(PICSQ?.1'::URL::http://www.rsac.org/ratingsv01.html'
       I gen comment 'RSACi North America Sever' by 'inet@microsoft.com' 
       for '::URL::http://www.microsoft.com'  on '1997.06.30T14:21Q?500' r(n0 s0 v0 l0))"> 
   注意Q不要将U别讄的太高。RSAC的评估系l提供了(jin)一U用来评价Web站点内容的标准。用户可以设|Microsoft Internet ExplorerQIE3.0以上Q来排除包含有色情和暴力内容的站炏V上面这个例子中的HTML取自Microsoft的主c(din)代码中的(n 0 s 0 v 0 l 0Q表C站点不包含不健康内容。别的评定是由RSACQ即国׃委员?x)的评机构评定的,如果你想q一步了(jin)解RSAC评估pȝ的等U内容,或者你需要评仯q|站Q可以访问RSAC的站点:(x)::URL::      <Meta http-equiv="Page-Exit" Content="blendTrans(Duration=0.5)">
   注意QblendTrans是动态o(h)镜的一U,产生渐隐效果。另一U动态o(h)镜RevealTrans也可以用于页面进入与退出效? 
      <Meta http-equiv="Page-Enter" Content="revealTrans(duration=x, transition=y)">
      <Meta http-equiv="Page-Exit" Content="revealTrans(duration=x, transition=y)"> 
       Duration  表示滤镜Ҏ(gu)的持l时?单位Q秒)
       Transition 滤镜cd。表CZ用哪U特效,取gؓ(f)0-23?nbsp;
       0 矩Ş~小
       1 矩Ş扩大
       2 圆Ş~小
       3 圆Ş扩大
       4 下到上刷?br>       5 上到下刷?br>       6 左到叛_?br>       7 叛_左刷?br>       8 竖百叶窗
       9 横百叶窗
       10 错位横百叶窗
       11 错位竖百叶窗
       12 Ҏ(gu)?br>       13 左右C间刷?br>       14 中间到左叛_?br>       15 中间C?br>       16 上下C?br>       17 右下到左?br>       18 右上到左?br>       19 左上到右?br>       20 左下到右?br>       21 横条
       22 竖条
       23 以上22U随机选择一U?nbsp;
  9、MSThemeCompatible (XP主题)
   说明Q是否在IE中关?nbsp;xp 的主?br>   用法Q?lt;Meta http-equiv="MSThemeCompatible" Content="Yes">
   注意Q关?nbsp;xp 的蓝色立体按钮系l显C样式,从而和win2k 很象?nbsp;
  10、IE6 (面生成?
   说明Q页面生成器generatorQ是ie6
   用法Q?lt;Meta http-equiv="IE6" Content="Generator">
   注意Q用什么东西做的,cM商品出厂厂商?nbsp;
  11、Content-Script-Type (脚本相关)
   说明Q这是近来W3C的规范,指明面中脚本的cd?br>   用法Q?lt;Meta http-equiv="Content-Script-Type" Content="text/javascript">
   注意Q?nbsp;
  ★NAME变量 
  name是描q网늚Q对应于ContentQ网内容)(j)Q以便于搜烦(ch)引擎机器人查找、分c(目前几乎所有的搜烦(ch)引擎都用网上机器h自动查找meta值来l网分c)(j)?br>  name的value|name=""Q指定所提供信息的类型。有些值是已经定义好的。例如description(说明)、keyword(关键?、refresh(h){。还可以指定其他L|如:(x)creationdate(创徏日期) ?br>document ID(文档~号)和level({){?br>  name的content指定实际内容。如Q如果指定level({)为value(?Q则C(j)ontent可能是beginner(初)、intermediate(中)、advanced(高)?nbsp;

  1、Keywords (关键?
   说明Qؓ(f)搜烦(ch)引擎提供的关键字列表
   用法Q?lt;Meta name="Keywords" Content="关键?,关键?Q关键词3,关键?,……">
   注意Q各关键词间用英文逗号“,”隔开。META的通常用处是指定搜索引擎用来提高搜索质量的关键词。当CMETA元素提供文档语言从属信息Ӟ搜烦(ch)引擎?x)用langҎ(gu)来qo(h)q过用户的语a优先参照来显C搜索结果。例如:(x)
      <Meta name="Kyewords" Lang="EN" Content="vacation,greece,sunshine">
      <Meta name="Kyewords" Lang="FR" Content="vacances,grè:ce,soleil"> 
  2、Description (?
   说明QDescription用来告诉搜烦(ch)引擎你的|站主要内容?br>   用法Q?lt;Meta name="Description" Content="你网늚q?>
   注意Q?nbsp;
  3、Robots (机器人向?
   说明QRobots用来告诉搜烦(ch)机器人哪些页面需要烦(ch)引,哪些面不需要烦(ch)引。Content的参数有all、none、index、noindex、follow、nofollow。默认是all?br>   用法Q?lt;Meta name="Robots" Content="All|None|Index|Noindex|Follow|Nofollow">
   注意Q许多搜索引擎都通过攑ևrobot/spider搜烦(ch)来登录网站,q些robot/spiderp用到meta元素的一些特性来军_怎样d?nbsp;
    allQ文件将被检索,且页面上的链接可以被查询Q?br>    noneQ文件将不被(g)索,且页面上的链接不可以被查询;(?nbsp;"noindex, no follow" L(fng)同作?
    indexQ文件将被检索;Q让robot/spiderdQ?br>    followQ页面上的链接可以被查询Q?br>    noindexQ文件将不被(g)索,但页面上的链接可以被查询Q?不让robot/spiderd)
   nofollowQ文件将不被(g)索,面上的链接可以被查询?不让robot/spider着此页的连接往下探? 
  4、Author (作?
   说明Q标注网늚作者或制作l?br>   用法Q?lt;Meta name="Author" Content="张三Qabc@sina.com">
   注意QContent可以是:(x)你或你的制作l的名字,或Email 
  5、Copyright (版权)
   说明Q标注版?br>   用法Q?lt;Meta name="Copyright" Content="本页版权归Zerospace所有。All Rights Reserved">
   注意Q?nbsp;
  6、Generator (~辑?
   说明Q编辑器的说?br>   用法Q?lt;Meta name="Generator" Content="PCDATA|FrontPage|">
   注意QContent="你所用编辑器" 
  7、revisit-after (重访)
   说明Q?br>   用法Q?lt;META name="revisit-after" CONTENT="7 days" >
   注意Q?nbsp;
  ★Head中的其它一些用?nbsp;

  1、scheme (Ҏ(gu))
   说明Qscheme can be used when name is used to specify how the value of content should
      be interpreted.
   用法Q?lt;meta scheme="ISBN" name="identifier" content="0-14-043205-1" />
   注意Q?nbsp;
  2、Link (链接)
   说明Q链接到文g
   用法Q?lt;Link href="soim.ico" rel="Shortcut Icon">
   注意Q很多网站如果你把她保存在收件夹中后Q会(x)发现它连带着一个小图标Q如果再ơ点击进入之后还?x)发现地址栏中也有个小图标。现在只要在你的头加上q段话,pL实现q一功能?lt;LINK> 用来目前文件与其它 URL 作连l,但不?x)有q结按钮Q用?nbsp;<HEAD> 标记_(d) 格式如下Q?nbsp;
       <link href="URL" rel="relationship"> 
       <link href="URL" rev="relationship"> 
  3、Base (基链?
   说明Q插入网基链接属?br>   用法Q?lt;Base href="::URL::
http://www.xia8.net/"  target="_blank">
   注意Q你|页上的所有相对\径在链接旉在前面加上“::URL::http://www.cn8cn.com/”。其中target="_blank"是链接文件在新的H口中打开Q你可以做其他设|。将“_blank”改ؓ(f)“_parent”是链接文件将在当前窗口的父H口中打开Q改?#8220;_self”链接文g在当前窗口(帧)(j)中打开Q改?#8220;_top”链接文g全屏昄?/font>  

  以上是META标签的一些基本用法,其中最重要的就是:(x)Keywords和Description的设定。ؓ(f)什么呢Q道理很单,q两个语句可以让搜烦(ch)引擎能准的发现你,吸引更多的h讉K你的站点!Ҏ(gu)现在行搜烦(ch)引擎(GoogleQLycosQAltaVista{?的工作原理,搜烦(ch)引擎先派机器动在WWW上搜索,当发现新的网站时Q便于检索页面中的Keywords和DescriptionQƈ其加入到自q数据库,然后再根据关键词的密度将|站排序?nbsp;
  由此看来Q我们必记住添加Keywords和Description的META标签Qƈ可能写好关键字和简介。否则,
后果׃(x)是:(x)
  
  ● 如果你的面中根本没有Keywords和Description的META标签Q那么机器h是无法将你的站点加入?br>    据库Q网友也׃可能搜烦(ch)C的站炏V?nbsp;
  ● 如果你的关键字选的不好Q关键字的密度不高,被排列在几十甚至几百万个站点的后面被点击的可
    能性也是非常小的?nbsp;
  写好Keywords(关键?要注意以下几点:(x) 

  ● 不要用常见词汇。例如www、homepage、net、web{?nbsp;
  ● 不要用Ş容词Q副词。例如最好的Q最大的{?nbsp;
  ● 不要用笼l的词汇Q要量_。例?#8220;q信手?#8221;Q改?#8220;T28SC”?x)更好?nbsp;

  “三h之行Q必有我?#8221;Q寻扑֐适关键词的技巧是Q到Google、Lycos、Alta{著名搜索引擎,搜烦(ch)?br>你的|站内容总的网站,查看排名前十位的|站的META关键字,它们用在你的网站上Q效果可惌知?jin)?nbsp;
  ★小H门 
  Z(jin)提高搜烦(ch)点击率,q里q有一?#8220;捷径”可以帮得CQ?nbsp;
  ● Z(jin)增加关键词的密度Q将关键字隐藏在面?文字颜色定义成与背景颜色一??nbsp;
  ● 在图像的ALT注释语句中加入关键字。如Q?lt;IMG SRC="xxx.gif" Alt="Keywords"> 
  ● 利用HTML的注释语句,在页面代码里加入大量关键字。用法:(x) <!-- q里插入关键?nbsp;--> 


  <title>文g_(d)昄在浏览器标题?lt;/title>
  <meta http-equiv="Content-Language" content="zh-cn">
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
  <meta name="ProgId" content="FrontPage.Editor.Document">
  <meta name="制作? content="唐蓉?>
  <meta name="主题? content="HTML |页制作 课g">




]]>
常用的js脚本http://www.tkk7.com/hua/archive/2007/04/28/114241.html?/dc:creator>?/author>Sat, 28 Apr 2007 01:13:00 GMThttp://www.tkk7.com/hua/archive/2007/04/28/114241.htmlhttp://www.tkk7.com/hua/comments/114241.htmlhttp://www.tkk7.com/hua/archive/2007/04/28/114241.html#Feedback0http://www.tkk7.com/hua/comments/commentRss/114241.htmlhttp://www.tkk7.com/hua/services/trackbacks/114241.html
BS开发中常用的Javascript技?nbsp;
一、验证类 
1、数字验证内 
  1.1 整数 
  1.2 大于0的整?nbsp;Q用于传来的ID的验? 
  1.3 负整数的验证 
  1.4 整数不能大于iMax 
  1.5 整数不能于iMin 
2、时间类 
  2.1 短时_(d)形如 (13:04:06) 
  2.2 短日期,形如 (2003-12-05) 
  2.3 长时_(d)形如 (2003-12-05 13:04:06) 
  2.4 只有q和月。Ş?2003-05,或?003-5) 
  2.5 只有时和分?形如(12:03) 
3、表单类 
  3.1 所有的表单的值都不能为空 
  3.2 多行文本框的g能ؓ(f)I?nbsp;
  3.3 多行文本框的g能超qsMaxStrleng 
  3.4 多行文本框的g能少于sMixStrleng 
  3.5 判断单选框是否选择?nbsp;
  3.6 判断复选框是否选择. 
  3.7 复选框的全选,多选,全不选,反?nbsp;
  3.8 文g上传q程中判断文件类?nbsp;
4、字W类 
  4.1 判断字符全部由a-Z或者是A-Z的字字母l成 
  4.2 判断字符由字母和数字l成?nbsp;
  4.3 判断字符由字母和数字Q下划线,点号l成.且开头的只能是下划线和字?nbsp;
  4.4 字符串替换函?Replace(); 
5、浏览器c?nbsp;
  5.1 判断览器的cd 
  5.2 判断ie的版?nbsp;
  5.3 判断客户端的分L?nbsp;
   
6、结合类 
  6.1 email的判断?nbsp;
  6.2 手机L(fng)的验?nbsp;
  6.3 w䆾证的验证 
   

二、功能类 

1、时间与相关控gc?nbsp;
  1.1 日历 
  1.2 旉控g 
  1.3 万年?nbsp;
  1.4 昄动态显C时钟效果(文本Q如OA中时_(d)(j) 
  1.5 昄动态显C时钟效?nbsp;(囑փQ像手表)  
2、表单类 
  2.1 自动生成表单 
  2.2 动态添加,修改Q删除下拉框中的元素 
  2.3 可以输入内容的下拉框 
  2.4 多行文本框中只能输入iMax文字。如果多输入?jin),自动减少到iMax个文字(多用于短信发? 
   
3、打印类 
  3.1 打印控g 
4、事件类 
  4.1 屏蔽右键 
  4.2 屏蔽所有功能键 
  4.3 --> ?lt;-- F5 F11,F9,F1 
  4.4 屏蔽l合键ctrl+N 
5、网设计类 
  5.1 q箋滚动的文字,囄Q注意是q箋的,两段文字和图片中没有I白出现Q?nbsp;
  5.2 html~辑控gc?nbsp;
  5.3 颜色选取框控?nbsp;
  5.4 下拉菜单 
  5.5 两层或多层次的下拉菜?nbsp;
  5.6 仿IE菜单的按钮。(效果如rongshuxa.com的导航栏? 
  5.7 状态栏Qtitle栏的动态效果(例子很多Q可以研I一下)(j) 
  5.8 双击后,|页自动滚屏 
6、树(wi)型结构?nbsp;
  6.1 asp+SQL?nbsp;
  6.2 asp+xml+sql?nbsp;
  6.3 java+sql或者java+sql+xml 
7、无Ҏ(gu)效果的制?nbsp;
8、连动下拉框技?nbsp;
9、文本排?nbsp;
10Q画囄Q含饹{柱、矢量贝滋曲U?nbsp;
11Q操U客L(fng)注册表类 
12QDIV层相养I拖拽、显C、隐藏、移动、增加)(j) 
13QTABLAE相关(客户端动态增加行列,模拟q度条,滚动列表{? 
14Q各U?lt;object classid=>相关c,如播攑֙Qflash与脚本互动等 
16, h/模拟无刷?nbsp;异步调用c(XMLHttp或iframe,frameQ?nbsp;

 

 

<script language="JavaScript"> 
<!-- 
function check(text){ 
var checkstr,iMax=5,iMin=3 
checkstr="isInt:"+(parseInt(text)==text)+"\n" 
checkstr+="isID:"+((parseInt(text)==text)&&(text>=0))+"\n" 
checkstr+="于"+iMax+":"+((parseInt(text)==text)&&(text<iMax))+"\n" 
checkstr+="大于"+iMin+":"+((parseInt(text)==text)&&(text>iMin))+"\n" 
alert(checkstr) 

//--> 
 
<form method=post action=""> 
<input type="text" id="text1" onchange="check(this.value)"> 
</form> 

 

4、事件类 
  4.1 屏蔽右键 
      在body标签里加上oncontextmenu=self.event.returnValue=false   
  4.2 屏蔽所有功能键 

  4.3 --> ?lt;-- F5 F11,F9,F1 

  4.4 屏蔽l合键ctrl+N 

<script language=javascript> 
function KeyDown(){    
  if ((window.event.altKey)&& 
      ((window.event.keyCode==37)||   //屏蔽 Alt+ 方向?nbsp;← 
       (window.event.keyCode==39))){  //屏蔽 Alt+ 方向?nbsp;→ 
     alert("不准你用ALT+方向键前q或后退|页Q?
     event.returnValue=false; 
     } 
  if ((event.keyCode==8)||            //屏蔽退格删除键 
      (event.keyCode==116)){          //屏蔽 F5 h?nbsp;
     event.keyCode=0; 
     event.returnValue=false; 
     } 
  if ((event.ctrlKey)&&(event.keyCode==78)){   //屏蔽 Ctrl+n 
     event.returnValue=false; 
     } 
  if ((event.shiftKey)&&(event.keyCode==121)){ //屏蔽 shift+F10 
     event.returnValue=false; 
     } 
  if (event.keyCode==122){ //屏蔽 F11 
     event.returnValue=false; 
     } 
  } 
只要知道keyCode卛_屏蔽所有功能键 


一、验证类 
1、数字验证内 
  1.1 整数 
      /^(-|\+)?\d+Q?.test(str) 
  1.2 大于0的整?nbsp;Q用于传来的ID的验? 
      /^\d+Q?.test(str) 
  1.3 负整数的验证 
      /^-\d+Q?.test(str) 
2、时间类 
  2.1 短时_(d)形如 (13:04:06) 
      function isTime(str) 
      { 
        var a = str.match(/^(\d{1,2})(?(\d{1,2})\2(\d{1,2})Q?); 
        if (a == null) {alert('输入的参C是时间格?); return false;} 
        if (a[1]>24 || a[3]>60 || a[4]>60) 
        { 
          alert("旉格式不对"
          return false 
        } 
        return true; 
      } 
  2.2 短日期,形如 (2003-12-05) 
      function strDateTime(str) 
      { 
         var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})Q?);  
         if(r==null)return false;  
         var d= new Date(r[1], r[3]-1, r[4]);  
         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); 
      } 
  2.3 长时_(d)形如 (2003-12-05 13:04:06) 
      function strDateTime(str) 
      { 
        var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2})\d{1,2})\d{1,2})Q?;  
        var r = str.match(reg);  
        if(r==null)return false;  
        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);  
        return  

(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&
d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()== 

r[7]); 
      } 
  2.4 只有q和月。Ş?2003-05,或?003-5) 
  2.5 只有时和分?形如(12:03) 
3、表单类 
  3.1 所有的表单的值都不能为空 
      <input onblur="if(this.value.replace(/^\s+|\s+Q?g,')==')alert('不能为空!')"> 
  3.2 多行文本框的g能ؓ(f)I?nbsp;
  3.3 多行文本框的g能超qsMaxStrleng 
  3.4 多行文本框的g能少于sMixStrleng 
  3.5 判断单选框是否选择?nbsp;
  3.6 判断复选框是否选择. 
  3.7 复选框的全选,多选,全不选,反?nbsp;
  3.8 文g上传q程中判断文件类?nbsp;
4、字W类 
  4.1 判断字符全部由a-Z或者是A-Z的字字母l成 
      <input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')"> 
  4.2 判断字符由字母和数字l成?nbsp;
      <input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')"> 
  4.3 判断字符由字母和数字Q下划线,点号l成.且开头的只能是下划线和字?nbsp;
      /^([a-zA-z_]{1})([\w]*)Q?g.test(str) 
  4.4 字符串替换函?Replace(); 
5、浏览器c?nbsp;
  5.1 判断览器的cd 
      window.navigator.appName 
  5.2 判断ie的版?nbsp;
      window.navigator.appVersion 
  5.3 判断客户端的分L?nbsp;
      window.screen.height;  window.screen.width; 
   
6、结合类 
  6.1 email的判断?nbsp;
      function ismail(mail) 
      { 
        return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)
[A-Za-z0-9]+)*\.[A-Za-z0-9]+Q?).test(mail)); 
      } 
  6.2 手机L(fng)的验?nbsp;
  6.3 w䆾证的验证 
      function isIdCardNo(num) 
      { 
        if (isNaN(num)) {alert("输入的不是数字!"; return false;} 
        var len = num.length, re;  
        if (len == 15) 
          re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})Q?); 
        else if (len == 18) 
          re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)Q?); 
        else {alert("输入的数字位C对!"; return false;} 
        var a = num.match(re); 
        if (a != null) 
        { 
          if (len==15) 
          { 
            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); 
            var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&
D.getDate()==a[5]; 
          } 
          else 
          { 
            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); 
            var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&
D.getDate()==a[5]; 
          } 
          if (!B) {alert("输入的n份证?nbsp;"+ a[0] +" 里出生日期不对!"; return false;} 
        } 
        return true; 
      } 


3.7 复选框的全选,多选,全不选,反?nbsp;
<form name=hrong> 
<input type=checkbox name=All onclick="checkAll('mm')">全?lt;br/> 
<input type=checkbox name=mm onclick="checkItem('All')"><br/> 
<input type=checkbox name=mm onclick="checkItem('All')"><br/> 
<input type=checkbox name=mm onclick="checkItem('All')"><br/> 
<input type=checkbox name=mm onclick="checkItem('All')"><br/> 
<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/> 


<input type=checkbox name=All2 onclick="checkAll('mm2')">全?lt;br/> 
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/> 
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/> 
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/> 
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/> 
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/> 

</form> 

<SCRIPT LANGUAGE="JavaScript"> 
function checkAll(str) 

  var a = document.getElementsByName(str); 
  var n = a.length; 
  for (var i=0; i<n; i++) 
  a[i].checked = window.event.srcElement.checked; 

function checkItem(str) 

  var e = window.event.srcElement; 
  var all = eval("document.hrong."+ str); 
  if (e.checked) 
  { 
    var a = document.getElementsByName(e.name); 
    all.checked = true; 
    for (var i=0; i<a.length; i++) 
    { 
      if (!a[i].checked){ all.checked = false; break;} 
    } 
  } 
  else all.checked = false; 

</SCRIPT> 

3.8 文g上传q程中判断文件类?nbsp;
<input type=file onchange="alert(this.value.match(/^(.*)(\.)(.{1,8})Q?)[3])"> 

 

不断地清I剪贴板: 
<body onload="setInterval('clipboardData.setData(\'Text\',\'\')',100)"> 


<script language="JavaScript" type="text/JavaScript"> 
//先复制一样东西,或者文本或者图?nbsp;
if(clipboardData.getData("Text"||clipboardData.getData("HTML"||
clipboardData.getData("URL"

alert("有效行ؓ(f)"

 


全屏技术:(x) 
真正的全屏页面解决之道!Q全代码Q?nbsp; 
真正全屏解决之道Q?nbsp; 
1.htm  
  
  
<title>无标题文?lt;/title>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
  

<body onload="window.open('fullscreen.htm',','fullscreen=1,scroll=no');">  
  
  


fullscreen.htm  
  
  
<title>无标题文?lt;/title>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
<script language="JavaScript1.2">   
<!--   
function opensmallwin(myurl){   
var w2=300;//惛_出窗口的宽度   
var h2=100;//惛_出窗口的高度   
var w3=window.screen.width/2-w2/2;   
var h3=window.screen.height/2-h2/2;   
window.open(myurl,'small','toolbar=no,location=no,directories=no,status=no,menubar=no,
scrollbars=no,resizable=0,width='+ w2 +',height='+ h2 +',left='+ w3 +',top='+ h3 +');   
}   
//-->   

<!--  
function modelesswin(url,mwidth,mheight){  
  if (document.all&&window.print)  
    eval('window.external.m2_blocked(url,"","help:0;resizable:0;status:0;center:1;
scroll:0;dialogWidth:'+mwidth+'px;dialogHeight:'+mheight+'px"')   
  else  
    eval('window.open(url,"","width='+mwidth+'px,height='+mheight+'px,resizable=1,
scrollbars=1"')  
  }  
//-->  

   
  

<body  scroll="no">  
<div align="right"><a href="javascript:" onclick="window.close()">关闭
</a> </div>  
<p></P>  
<div align="right"><a href="javascript:" onclick="opensmallwin('login.htm')">d
</a> </div>  

<p></P>  
<div align="center"><a href="javascript:" 
onclick="modelesswin('login.htm',300,160)">用模态登录窗?lt;/a> </div>  
  
  


login.htm  
  
  
<title>用户d</title>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  

<style type="text/css">  
<!--  
body {  
   background-color: #EAEAEA;  
   font-family: Arial, Helvetica, sans-serif;  
   font-size: 12px;  
   line-height: 24px;  
   color: #336699;  
}  
input.boxline {  
   width: 100px;  
   font-family: "Times New Roman", "Times", "serif";  
   font-size: 9pt;  
   border: 1px solid #669999;  
   height: 18px;  

}  

input.whiteline {    
   font-size: 12px; border: 1px #999999 solid  
}  
-->  
</style>  
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">  
<table width="100%" height="100%" border="0" cellpadding="0"
 cellspacing="14" bgcolor="#CCCCCC">  
  <tr valign="top">  
    <td width="10%" nowrap  align="right"><b>用户名:(x)</b></td>  
    <td width="90%"><input name="textfield1" type="text" size="25"
 class="whiteline"></td>  
  </tr>  
  <tr valign="top">  
    <td nowrap align="right"><b>密 码:(x)</b></td>  
    <td><input name="textfield12" type="password" size="25" 
class="whiteline"></td>  
  </tr>  
  <tr valign="top">  
    <td> </td>  
    <td><input type="submit" name="Submit" value="癅R ? 
class="boxline"></td>  
  </tr>  
</table>  
  
  


自动x原窗口:(x)  


  
  
<title>无标题文?lt;/title>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
<style type="text/css">  
<!--  
body {  
   margin-left: 0px;  
   margin-top: 0px;  
   margin-right: 0px;  
   margin-bottom: 0px;  
}  
-->  
</style>  
  

<body onload="window.open('fullscreen.htm',','fullscreen=1,scroll=no');
window.opener=null;window.close()">  
<input type=button value=关闭 onclick="window.opener=null;window.close()">   
<!-- IE5.5+ 不会(x)有弹出提C?nbsp;-->   

<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 
height=0 width=0></OBJECT>   
<input type=button value=关闭H口 onclick=document.all.WebBrowser.ExecWB(45,1)>   
  
  

关键是在onload事g中加入:(x)  
window.opener=null;window.close()  


预读囄Q?nbsp;
<SCRIPT LANGUAGE="JavaScript"> 

<!-- This script and many more are available free online at --> 
<!-- The JavaScript Source!! <a href=::URL::http://javascript.internet.com  
target=_blank>::URL::http://javascript.internet.com  --> 

<!-- Begin 

image1 = new Image(); 
image1.src = "image1.gif"; 

image2 = new Image(); 
image2.src = "image2.gif"; 

// End --> 
 

 

关于两个|页h交互的问?nbsp; 
JS处理Ҏ(gu)Q?nbsp; 

a.htm  

<a href="b.htm" target=blank>发表留言</a>  
  
alert("wwwwwwwwwwwwwwwwwwwwwwwwww";  
  

b.htm  

<script language="javascript">  
//window.opener.location.reload();h父窗?nbsp; 
//window.opener.location="2.htm"http://重定向父H口?.htm?nbsp; 
function closewindow()  
{  
window.opener.location.reload();  
self.close();  
window.opener.document.write("sssssssssssssssssss";  
}  
  
<a href="b.htm" target=blank onclick="closewindow();">关闭</a>  

 

后台处理Ҏ(gu)Q?nbsp; 

private btnForSubmit(Object sender,EventArgs e)  
{  
 .............  
 Response.Write("window.opener.document.execCommand('refresh');
window.opener=';window.close();";  
//string str="window.opener.document.execCommand('refresh');
window.opener=';window.close();";  
//this.RegisterStartupScript("mycode",str);  
external.m2_blocked()、external.m2_blocked()Ҏ(gu)使用详解 

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

  external.m2_blocked() (IE 4+ 支持) 
  external.m2_blocked() (IE 5+ 支持) 


 window.external.m2_blocked()Ҏ(gu)用来创徏一个显CHTML内容的模态对话框Q?br>׃是对话框Q因此它q没有一般用window.open()打开的窗口的所有属性?nbsp;
 window.external.m2_blocked()Ҏ(gu)用来创徏一个显CHTML内容的非模态对话框?nbsp;

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

使用Ҏ(gu)如下Q?nbsp;
 vReturnValue=window.external.m2_blocked(sURL [,vArguments] [,sFeatures]) 
 vReturnValue=window.external.m2_blocked(sURL [,vArguments] [,sFeatures]) 
参数说明Q?nbsp;
 sURL 
 必选参敎ͼcdQ字W串。用来指定对话框要显C的文档的URL?nbsp;
 vArguments 
 可选参敎ͼcdQ变体。用来向对话框传递参数。传递的参数cd不限Q包括数l等?br>对话框通过window.dialogArguments来取得传递进来的参数?nbsp;
 sFeatures 
 可选参敎ͼcdQ字W串。用来描q对话框的外观等信息Q可以用以下的一个或几个Q?br>用分?#8220;;”隔开?nbsp;
  dialogHeight 对话框高度,不小于1Q0pxQテQ4中dialogHeight ?nbsp;dialogWidth
 默认的单位是emQ而テQ5中是pxQؓ(f)方便其见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 } [QIQ+]Q是否可被改变大。默认no?nbsp;
   status: {yes | no | 1 | 0 } [IE5+]Q是否显C状态栏。默认ؓ(f)yes[ Modeless]
或no[Modal]?nbsp;
  scroll:{ yes | no | 1 | 0 | on | off }Q指明对话框是否昄滚动条。默认ؓ(f)yes?nbsp;

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

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

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

 test2.htm 
 ==================== 
  
  var a = window.dialogArguments 
  alert("(zhn)传递的参数为:(x)" + a) 
  

 test3.htm 
 ==================== 
  
  var a = window.dialogArguments 
  alert("(zhn)传递的参数为window对象Q名Uͼ(x)" + a.name) 
  

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

 test4.htm 
 =================== 
  
  var a = window.external.m2_blocked("test5.htm" 
  for(i=0;i<a.length;i++) alert(a[i]) 
  

 test5.htm 
 =================== 
  
 function sendTo() 
 { 
  var a=new Array("a","b" 
  window.returnValue = a 
  window.close() 
 } 
  
  
 <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你可以用高度ؓ(f)0的frame来作Q例子, 

 test6.htm 
 =================== 
  
  window.external.m2_blocked("test7.htm" 
  

 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> 
  
 if(window.location.search) alert(window.location.search) 
  
 2,可以通过::URL:: //屏蔽鼠标右键、Ctrl+N、Shift+F10、F5h、退格键 
 //屏蔽F1帮助 
function window.onhelp() 

   return false 

function KeyDown() 

  //alert(event.keyCode); 
   //屏蔽 Alt+ 方向?nbsp;← 屏蔽 Alt+ 方向?nbsp;→ 
  if ((window.event.altKey)&&((window.event.keyCode==37)||
(window.event.keyCode==39))) 
  {   
     //alert("不准你用ALT+方向键前q或后退|页Q?
     event.returnValue=false; 
  } 
  //屏蔽退格删除键,屏蔽 F5 h?Ctrl + R 
  if ((event.keyCode==116)||(event.ctrlKey && event.keyCode==82)) 
  {  
     event.keyCode=0; 
     event.returnValue=false; 
  }  
   
  //屏蔽 Ctrl+n 
  if ((event.ctrlKey)&&(event.keyCode==78)) 
  {   
     event.returnValue=false; 
  } 
   
  //屏蔽 shift+F10 
  if ((event.shiftKey)&&(event.keyCode==121)) 
  {  
     event.returnValue=false; 
  } 
   
  //屏蔽 shift 加鼠标左键新开一|页 
  if (window.event.srcElement.tagName == "A" && window.event.shiftKey)  
  { 
    window.event.returnValue = false; 
  } 
       
   //屏蔽Alt+F4 
  if ((window.event.altKey)&&(window.event.keyCode==115)) 
  { 
      window.external.m2_blocked("about:blank","","dialogWidth:1px;dialogheight:1px"
      return false; 
  } 
   
  //屏蔽Ctrl+A 
  if((event.ctrlKey)&&(event.keyCode==65)) 
  { 
   return false; 
  } 
     

 
 
</HTML>  



]]>
直接telnet 25端口发邮?/title><link>http://www.tkk7.com/hua/archive/2007/04/24/113200.html</link><dc:creator>?/dc:creator><author>?/author><pubDate>Tue, 24 Apr 2007 07:43:00 GMT</pubDate><guid>http://www.tkk7.com/hua/archive/2007/04/24/113200.html</guid><wfw:comment>http://www.tkk7.com/hua/comments/113200.html</wfw:comment><comments>http://www.tkk7.com/hua/archive/2007/04/24/113200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hua/comments/commentRss/113200.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hua/services/trackbacks/113200.html</trackback:ping><description><![CDATA[<p>Q)(j)可以自己写个E序发邮件咯。用jmail控g也行?br>下次说telnet上收邮gQ可以做邮g到达提醒。:(x)Q偶们的oa里用得到哦?br><br>使用以下命o(h)启动 TELNET ?x)话Q?br>Telnet xxx.xxx.xxx.xxx 25<br>如果正常Q?zhn)?x)看到以下来自 IMC 的响应:(x)<br>       220 site.company.com Microsoft Exchange Internet Mail<br>       Connector 4.0.xxx.xx<br><br>其中Qxxx.xx ?nbsp;RTM ?nbsp;837.3Q对 SP1 ?nbsp;838.14?br><br>键入以下命o(h)开始进行通讯Q?br>HELO test.company.com<br>(zhn)应看到如下响应Q?br>       250 OK<br><br>键入以下命o(h)来通知 IMC 邮g源于何处Q?br>MAIL FROM:Admin@test.company.com<br>(zhn)应得到如下响应Q?br>       250 OK - MAIL FROM <[email]Admin@test.company.com[/email]><br><br>键入以下命o(h)来通知 IMC 邮g的目标地址Q用一个有效的 Microsoft Exchange 收g?nbsp;SMTP 地址Q?br>RCPT TO:<[email]User@Site.Domain.Com[/email]><br>(zhn)应看到如下响应Q?br>       250 OK - Recipient <[email]User@Site.Domain.Com[/email]><br><br>键入以下命o(h)以通知 IMC (zhn)已准备好发送数据:(x)<br>DATA<br>(zhn)应看到如下响应Q?br>       354 Send data.  End with CRLF.CRLF<br><br>键入以下命o(h)以添加主题行Q?br>Subject: test message<br><br>然后按两?nbsp;Enter 键?br><br>该命令看不到M响应?br><br>备注Q?nbsp;两个 Enter 命o(h)W合 RFC 822 规则Q即 822 命o(h)后必跟I?br><br><br>键入以下命o(h)来添加邮件正文:(x)<br>This is a test message<br>(zhn)将看不到来自该命o(h)的响应?br><br><br>在紧接着的空行处键入句号Q然后按 ENTER 键?br><br>(zhn)应看到如下响应Q?br>       250 OK<br><br>键入以下命o(h)以关闭连接:(x)<br>QUIT<br>(zhn)应看到如下响应Q?br>221 closing connection<br><br>对于上述M命o(h)Q如果?zhn)收?#8220;500 Command not recognized”错误消息Q则表明׃语法错误或无效的命o(h)D IMC 无法识别(zhn)所键入的内宏V?br><br>dq入(zhn)在上述步骤 4 中选择的邮件收件h?nbsp;Microsoft Exchange 客户邮箱?nbsp;如果邮箱中有(zhn)的试邮gQ说明传?nbsp;IMC 通讯工作正常?br><br>如果应用E序事g日志昄M错误消息Q或在接攉件时出现问题Q请(g)查配|或C机的通讯?/p> <div id="91bhxvt" class=summary> <h2>概要</h2> 本文介绍如何 telnet 到运行简单邮件传输协?nbsp;(SMTP) 服务的计机上的端口 25Q以解决 SMTP 通信问题。默认情况下QSMTP 侦听端口 25?br><br>(zhn)可以根据?zhn)遇到的问题类型选用以下适当的疑难解{步骤。例如,如果(zhn)在两台 Microsoft Exchange 2000 Server 服务器之间通过 SMTP 发送邮件时遇到问题Q则可以通过在发送服务器上?nbsp;Telnet q接到目标服务器上的端口 25 来测?nbsp;SMTP q接。或者,如果(zhn)在接收来自 Internet ?nbsp;SMTP 邮g旉到问题,则可以按照本文中列出的步骤,试ȝ?nbsp;Internet 上但不在(zhn)的|络上的L与?zhn)?nbsp;SMTP 服务器的q接?br></div> <div id="1hh7z1f" class=moreinformation> <h2>更多信息</h2> Microsoft 产品U中?nbsp;SMTP 的多个不同变体。Microsoft Windows 产品U的 SMTP 服务包含?nbsp;Internet 信息服务 (IIS) 中,而在 Microsoft Windows NT Server 4.0 中,SMTP 服务包含?nbsp;Option Pack 中。在较新版本?nbsp;Windows 中,IIS 已被集成到操作系l中Qƈ且?zhn)可以使?#8220;控制面板”中的“d或删除程?#8221;d IIS。此外,Exchange 2000 ?nbsp;Microsoft Exchange Server 2003 都?nbsp;IIS 中的现有 SMTP 服务?qing)其他功能。Microsoft Exchange Server 版本 4.0?.0 ?nbsp;5.5 均包含它们自q SMTP 版本Q所采用的Ş式ؓ(f) Internet Mail Connector (IMC) ?nbsp;Internet Mail Service (IMS)?br><br><strong>注意</strong>Q在 Exchange 5.0 ?qing)更高版本中QInternet Mail Connector (IMC) 被重命名?nbsp;Internet Mail Service?br><br>在启?nbsp;Telnet ?x)话之前Q必d有要此试邮g发送到的目标用L(fng)完整 SMTP ?sh)子邮g地址。该?sh)子邮g地址必须采用以下格式Q?nbsp; <p class=indent><var>User@Site.Domain.com</var></p> (zhn)也可以hq行 SMTP 服务的服务器计算机的完全限定域名 (FQDN) ?nbsp;IP 地址Q例如,10.120.159.1Q。如果服务器在?zhn)的组l中Q?zhn)可能已经拥有q些信息。如果服务器是外部服务器Q查找这些信息最单的Ҏ(gu)是?nbsp;Nslookup.exe 以找到包含这些信息的 DNS 记录?nbsp;有关 NSlookup 的其他信息,请单M面的文章~号Q以查看 Microsoft 知识库中相应的文章:(x)  <p class=indent><a class=KBlink ><font color=#0000ff><u>200525</u></font></a> 使用 NSlookup.exe</p> 有关如何获取 Internet 邮g交换器记录的其他信息Q请单击下面的文章编P以查?nbsp;Microsoft 知识库中相应的文章:(x)  <p class=indent><a class=KBlink ><font color=#0000ff><u>203204</u></font></a> XFORQ如何获?nbsp;Internet 邮g交换器记?/p> <br>保q行 SMTP 服务的服务器上已启动 SMTP。要试 SMTP 是否已启动,(zhn)可以运行本文中列出的基本测试,q证?zhn)是否会(x)收到来自远E服务器?nbsp;220 消息。这q将验证 SMTP 是否正在q行?br><br><strong>注意Q?/strong>  <ul> <li>有些 Telnet 应用E序要求(zhn)打开本地回显功能Q以查看键入的命令。要?nbsp;Microsoft Telnet ?x)话中执行此操作Q请在命令提C符处键?nbsp;<kbd><font face=新宋?set local_echo</font></kbd>?nbsp; <li>?nbsp;Microsoft Windows XP 中,应键?nbsp;<kbd><font face=新宋?set localecho</font></kbd> 而不?nbsp;<kbd><font face=新宋?set local_echo</font></kbd>?nbsp; </li> </ul> <h3>基本试</h3> 按照下列步骤操作Q以保L和远E?nbsp;SMTP 服务器能够通信。如果在(zhn)键入以下Q一命o(h)之后Q收C下错误信息,则说?nbsp;SMTP 服务器因法错误或命o(h)错误而无法识别?zhn)所键入的内容:(x)<br> <div id="5xrbnjv" class=errormsg>500 Command not recognized</div> (g)查该命o(h)q再ơ键入它Q或者验证?zhn)是否正在?nbsp;Microsoft SMTP 服务器直接通信?br><br><strong>注意</strong>QMicrosoft Telnet 不允许?zhn)使?nbsp;Backspace 键。如果在键入时出错,必须?nbsp;Enter 键,然后开始键入新的命令?br><br>在以下步骤中Q?zhn)要从命o(h)行中q行 Telnet。要打开命o(h)行,请单?#8220;开?#8221;Q单?#8220;q行”Q在“打开”框中键入 <kbd><font face=新宋?cmd</font></kbd>Q然后单?#8220;定”?nbsp; <ol class=dec> <li>(zhn)可以通过使用以下格式?nbsp;Telnet 命o(h)来启?nbsp;Telnet ?x)话Q?br><br><strong>注意</strong>Q在键入每行内容之后?nbsp;Enter 键?nbsp; <p class=indent><kbd><font face=新宋?telnet <var>服务器名</var><var>端口?/var></font></kbd></p> 例如Q键入:(x)  <p class=indent><kbd><font face=新宋?telnet <var>mail.contoso.com</var> <var>25</var></font></kbd></p> <font face="宋体, MS Song"><strong>注意</strong>Q?zhn)可以?var>服务器名</var> 替换为?zhn)要连接到?nbsp;SMTP 服务器的 IP 地址?nbsp;FQDN。记住在键入每个命o(h)之后?nbsp;<strong class=uiterm>Enter</strong> 键?br><br>如果该命令v作用Q?zhn)?x)收到来自 SMTP 服务器的cM以下内容的消息:(x)</font>  <p class=indent>?/P></p> <pre class=in_text>220 site.contoso.com Microsoft Exchange Internet Mail Connector <IMC 的版本号> </pre> <strong>注意</strong>Q由于有许多不同版本?nbsp;Microsoft SMTP 或第三方 SMTP 服务器,因此(zhn)可能会(x)收到来自接收服务器的不同的消息。不q,(zhn)肯定会(x)收到包含服务器的 FQDN ?nbsp;SMTP 的版本的 220 消息。此外,所有版本的 Microsoft SMTP ?nbsp;220 消息中都包含“Microsoft”一词?nbsp; <li>通过键入以下命o(h)开始通信Q?nbsp; <p class=indent><kbd><font face=新宋?EHLO <var>test.com</var></font></kbd></p> <strong>注意</strong>Q?zhn)可以使?nbsp;HELO 命o(h)Q但?nbsp;EHLO 是扩?nbsp;SMTP 动词集中的一个动词,SMTP 的所有当?nbsp;Microsoft 实现都支持该动词集。除非?zhn)认?f)扩展 SMTP 动词有问题,否则最好?nbsp;EHLO?br><br>如果该命令成功,(zhn)会(x)收到以下消息Q?nbsp; <p class=indent>?/P></p> <pre class=in_text>250 OK </pre> <li>键入以下命o(h)向接?nbsp;SMTP 服务器通知邮g发g人:(x)  <p class=indent><kbd><font face=新宋?MAIL FROM:<var>Admin@test.com</var></font></kbd></p> <strong>注意</strong>Q该地址可以是?zhn)想用的M SMTP 地址Q但是最好考虑以下问题Q?nbsp; <ol class=alpha> <li>有些 SMTP 邮gpȝ?x)基?nbsp;MAIL FROM:地址{选邮Ӟq且?x)禁止某?nbsp;IP 地址q接?nbsp;SMTP 邮gpȝQ或者如果连?nbsp;IP 地址?nbsp;SMTP 邮gpȝ所在的域不匚wQ它q会(x)止该地址?nbsp;SMTP 邮gpȝ发送电(sh)子邮件。在本例中,该域?nbsp;<var>test.com</var>?nbsp; <li>如果(zhn)在发送邮件时没有使用有效的电(sh)子邮件地址Q?zhn)无法确定在发送邮件时是否有问题,因ؓ(f)未送达报告 (NDR) 无法到达无效?nbsp;IP 地址。如果?zhn)使用有效的?sh)子邮件地址Q?zhn)?x)收到来自 SMTP 服务器的以下消息Q?nbsp; <p class=indent>?/P></p> <pre class=in_text>250 OK - MAIL FROM Admin@test.com </pre> </li> </ol> <li>键入以下命o(h)向接?nbsp;SMTP 服务器通知邮g的收件h?br><br><strong>注意</strong>Q最好始l用要发送到的域中的有效收g?nbsp;SMTP 地址。例如,如果(zhn)要发送到 <var>john@domain.com</var>Q必ȝ保域中存?nbsp;<var>john@domain.com</var>。否则,(zhn)会(x)收到 NDR?br><br>使用(zhn)要发送到的h员的 SMTP 地址键入以下命o(h)Q?nbsp; <p class=indent><kbd><font face=新宋?RCPT TO:<var>User@Domain.Com</var></font></kbd></p> (zhn)会(x)收到以下消息Q?nbsp; <p class=indent>?/P></p> <pre class=in_text>250 OK - Recipient User@ Domain.Com </pre> <li>键入以下命o(h)通知 SMTP 服务器?zhn)已准备好发送数据:(x)  <p class=indent><kbd><font face=新宋?DATA</font></kbd></p> (zhn)会(x)收到以下消息Q?nbsp; <pre>354 Send data. End with CRLF.CRLF </pre> <li>(zhn)现在已可以开始键入邮件的 822/2822 部分。用户将?x)在他们的收件箱中看到邮件的q一部分。键入以下命令以d主题行:(x)  <p class=indent><kbd><font face=新宋?Subject:<var>test message</var></font></kbd></p> 按两?nbsp;Enter 键。此命o(h)不会(x)昄M信息?br><br><strong>注意</strong>Q按两次 Enter 键ؓ(f)?jin)?nbsp;Request for Comments (RFC) 822 ?nbsp;2822 保持一致。它规定 822 命o(h)后面必须跟一个空行?nbsp; <li>键入以下命o(h)以添加邮件正文:(x)  <p class=indent><kbd><font face=新宋?This is a test message you will not see a response from this command.</font></kbd></p> <li>在下一个空行中键入英文句点 (.)Q然后按 Enter 键。?zhn)会(x)收C下消息:(x)  <p class=indent>?/P></p> <pre class=in_text>250 OK </pre> <li>键入以下命o(h)关闭q接Q?nbsp; <p class=indent><kbd><font face=新宋?QUIT</font></kbd></p> (zhn)会(x)收到以下消息Q?nbsp; <p class=indent>?/P></p> <pre class=in_text>221 closing connection </pre> <li>验证收g人是否收到?zhn)发送的消息。如果在应用E序事g日志中出CQ何错误事件消息,或者接攉件时出现问题Q请(g)查主机的配置或通信?nbsp; </li> </ol> <h3>高񔋹试</h3> 除本文前面列出的基本试步骤外,(zhn)还可以使用送达回执寚w件进行双向测试。?zhn)可以使用此方法验?nbsp;SMTP 服务器是否可以接受入站连接,q且为发件h生成一个送达回执以测?nbsp;SMTP 服务器的出站q接?br><br>要ؓ(f)试邮gh送达回执Q请参见本文“基本试”一节的W?nbsp;4 步,以确保提供的信息是可以接攉达回执的有效电(sh)子邮件地址。然后在本文“基本试”一节的W?nbsp;5 步中Q在 Telnet ?x)话中键入以下命?/div> <img src ="http://www.tkk7.com/hua/aggbug/113200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hua/" target="_blank">?/a> 2007-04-24 15:43 <a href="http://www.tkk7.com/hua/archive/2007/04/24/113200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML优化加快|页速度http://www.tkk7.com/hua/archive/2007/03/30/107475.html?/dc:creator>?/author>Fri, 30 Mar 2007 06:36:00 GMThttp://www.tkk7.com/hua/archive/2007/03/30/107475.htmlhttp://www.tkk7.com/hua/comments/107475.htmlhttp://www.tkk7.com/hua/archive/2007/03/30/107475.html#Feedback0http://www.tkk7.com/hua/comments/commentRss/107475.htmlhttp://www.tkk7.com/hua/services/trackbacks/107475.htmlweb开发h员是否必L握复杂的lg技术才能加快html面的访问速度Q答案是Q不一定!实际上,有许多关于HTML与DHTML斚w的技巧,它们原理单而且上手Ҏ(gu)。无论是技术高的老手Q还是初涉编E的菜鸟Q领?x)这些都十分必要?br />
     明显HTMLQ暗渡“公用脚本?/strong>

     减少web面下蝲旉的关键就是设法减文件大。当多个面q一些成分内Ҏ(gu)Q就可以考虑这些公用部分单独分d来。比如:(x)我们可以多个HTML面都用到的脚本E序~写成独立存在的.js文gQ然后再在页面中按如下方式调用它Q?br />
     <script src="myfile.js"></script>

     q样Q公用文件只需要下载一ơ,然后p入缓冲区。等下次再次调用包含公用文g的html面Ӟ下蝲旉明显减少?br />
     让样式表内容q入C工作

     CSS是HTML装扮器,一个漂亮的Web面不可能没有它。HTML面中有多种引用CSS的方法,不同的方法导致的效率也不一栗通常Q我们可以将定义?lt;style></style>间的样式控制代码提取出来Q保存到单独?css文g中,然后在HTML面中以<LINK>标记或者@import标记的方式进行引用:(x)

     <style> 

     @import url("mysheet1.css"); 

     </style> 


     h?点:(x)1?css文g中无需包括<style>标记Q?、@import和LINK标记要定义在HTML面的HEAD部分?br />
     宝贵内存节省两法

     量减少HTML面占用的内存空间是加快面下蝲速度的一个有效方法。在q方面,?个需要注意的问题Q?br />
     1、用同一U脚本语a

HTML面M开脚本E序的支持,我们l常?x)在面中嵌入多U脚本语aQ比如JavaScript与VBScript。但是,不知你发觉没有:(x)q样的؜合用减慢了(jin)面的访问速度。原因在于:(x)要解释ƈq行多种脚本代码Q就必须在内存中装蝲多种脚本引擎。所以,请尽量在面中用同一U脚本语a~写代码?br />
     2、y用IFrame

     你用过<IFRAME>标记吗?它可是一个非常美妙的功能。如果要在一个HTML文档中包含第2个页面的内容Q通常的方法是使用<FRAMESET>标记。但是有?lt;IFRAME>Q一切变得简单了(jin)。比如,开发一个文档预览页面,可以在左Ҏ(gu)|一pd主题Q在双攄一个IFRAMEQ其中包含要预览的文档;当鼠标掠q左边的每一个主题链接时Q就在右边徏立一个新的IFRAME以预览文档。这样做Q代码效率无疑是高效的,但同时导致了(jin)J重的处理过E,最l是~慢的速度?br />
     没关p,我们有办法:(x)只用单一的IFRAME。当鼠标指向一个新主题Ӟ只需要修改IFRAME元素的SRC属性即可。这PM旉内只?x)有一个预览文档保留在内存?br />
     择优选用动画定位属?/strong>

     每天上网览面Q你一定会(x)看到许多动画效果。比如,一个可q兔子在面上来回地走动 ... 实现q个效果的核?j)技术就是CCS定位。通常Q我们是使用element.style.left和element.style.top2个属性来辑ֈ囑Ş定位的目的。但是,q样做会(x)产生一些问题:(x)left属性返回一个字W串Qƈ且其中包含了(jin)度量单位Q比?00px)。因此,要设定新的位|坐标,必首先对q个字符串返回D行处理,然后才能赋|象下面一P(x)

     dim stringLeft, intLeft 

     stringLeft = element.style.left 

     intLeft = parseInt(stringLeft) 

     intLeft = intLeft + 10 

     element.style.left = intLeft; 

     你一定会(x)感觉做这么点事情竟要~写q么复杂的代码,是否有更z的Ҏ(gu)Q当然有Q请看这4个属性:(x)posLeft、posTop、posWidth 和 posHeightQ它们对应于相应字符串返回值的Ҏ(gu)数倹{好?jin),使用q些属性重新编写代码实C面代码实现的功能Q?br />
     element.style.posLeft += 10

     代码短小、速度却更快!

     循环控制多个动画

     说到制作动画效果Q当然离不开定时器的q用。通常的方法就是用window.setTimeout来不断地定位面上的元素。但是,如果面上有多个动画要显C,是不是就要设定多个定时器呢?{案是NoQ原因很单:(x)定时器功能将消耗掉大量宝贵的系l资源。可是我们仍能在面上控制多个动画,技巧就是用一个@环。在循环中根据不同的变量值控制相应动ȝ位置Q整个@环中只用一个window.setTimeout()函数调用?br />
     Visibility快于Display

     让图L隐时C(x)创造很有趣的效果,?U方法可以实现这个目的:(x)使用CSS的visibility属性或者display属性。对于绝对位|元素,diaplay和visibilityh同样的效果。两者的区别在于Q设|ؓ(f)display:none的元素将不再占用文档的I间Q而设|ؓ(f)visibility:hidden的元素仍然保留原位置?br />
     但是如果要处理绝对位|的元素Q用visibility?x)更快?br />
     从小处着?/strong>

     ~写DHTML|页的一个重要提C是Q从处着手。初ơ编写DHTML面Ӟ一定不要试囑֜面中用你?jin)解到的全部DHTML功能。每ơ可以只使用一个单一的新特征Qƈ且仔l地观察由此产生的变化。如果发现性能有所下降Q就可以快速地扑ֈZ么?br />
     脚本的DEFER?br />
     DEFER是脚本程序强大功能中的一个“无名英雄”。你可能从没有用过它,但是看完q里的介l后Q相信你q不开它。它告诉览器ScriptD包含了(jin)无需立即执行的代码,q且Q与SRC属性联合用,它还可以使这些脚本在后台被下载,前台的内容则正常昄l用戗?br />


     最后请注意两点Q?br />
     1、不要在defer型的脚本E序D中调用document.write命o(h)Q因为document.write生直接输出效果?br />
     2、而且Q不要在defer型脚本程序段中包括Q何立x行脚本要使用的全局变量或者函数?br />
     保持同一URL的大写一致?/strong>

     我们都知道UNIX服务器是大小写敏感的Q但是你知道吗:(x)Internet Explorer的缓冲区也是区别对待大小写字W串的。因此,作ؓ(f)web开发者,一定要C保持相同链接的URL字符串在不同位置的大写的一致性。否则,׃(x)在浏览器的缓冲区中存攑֐一位置的不同文件备份,也增加了(jin)下蝲同一位置内容的请求次数。这些都无疑降低?jin)web讉K效率。所以请谨记Q同一位置的URLQ在不同面中请保持URL字符串的大小写一致性?br />
     让标记有始有l?/strong>

     自己~写或者查看他人的HTML代码Ӟ我们一定都遇到q标记有头无情况。比如:(x)

     <P>有头无尾标记举例 
     <UL> 
     <LI>W一?br />     <LI>W二?br />     <LI>W三?br />     </UL> 

     很明显,上面的代码中~少三个</LI>l束标记。但是这q不妨碍它的正确执行。在HTML中,q样的标记还有一些,例如FRAME、IMG和P。?br />
     可是请不要偷懒,请将l束标记写完_(d)q样做不仅HTML代码格式规范Q更可以加速页面的昄速度。因为Internet Explorer不?x)花?gu)间判断和计算D落或者列表项目在哪里l束?br />
     <P>有头有尾标记举例</P> 
     <UL> 
     <LI>W一?lt;/LI> 
     <LI>W二?lt;/LI> 
     <LI>W三?lt;/LI> 
     </UL> 

     OKQ以上列举了(jin)有关加速HTML面?0个处理技巧,描述q些很简单,但是只有真正领会(x)q掌握其中的本质Qƈ且D一反三Q才?x)编写出更快、更好的E序?/div>

]]>
XP常用开始→q行→输入的命o(h) http://www.tkk7.com/hua/archive/2007/03/26/106382.html?/dc:creator>?/author>Mon, 26 Mar 2007 05:45:00 GMThttp://www.tkk7.com/hua/archive/2007/03/26/106382.htmlhttp://www.tkk7.com/hua/comments/106382.htmlhttp://www.tkk7.com/hua/archive/2007/03/26/106382.html#Feedback0http://www.tkk7.com/hua/comments/commentRss/106382.htmlhttp://www.tkk7.com/hua/services/trackbacks/106382.html XP 常用开始→q行→输入的命o(h)

   winchat--------XP 自带局域网聊天

 

   mem.exe-------- 昄内存使用情况

 

   Msconfig.exe--- pȝ配置实用E序

 

        mmc------------ 打开控制?/span>

 

   mobsync-------- 同步命o(h)

 

   dxdiag--------- (g)?/span> DirectX 信息

 

   drwtsn32------ pȝȝ

 

   devmgmt.msc--- 讑֤理?/span>

 

   dfrg.msc------- 盘片整理E序

 

   diskmgmt.msc--- 盘理实用E序

 

   dcomcnfg------- 打开pȝlg服务

 

net stop messenger----- 停止信服务

 

   net start messenger---- 开始信使服?/span>

 

nslookup------- |络理的工具向?/span>

 

   ntbackup------- pȝ备䆾和还?/span>

 

netstat -an----(TC) 命o(h)(g)查接?/span>

 

   sysedit-------- pȝ配置~辑?/span>

 

       secpol.msc----- 本地安全{略

 

   syskey--------- pȝ加密Q一旦加密就不能解开Q保?/span> windows xp pȝ的双重密?/span>

 

   services.msc--- 本地服务讄

 

   Sndvol32------- 音量控制E序

 

   sfc.exe-------- pȝ文g(g)查器

 

   sfc /scannow---windows 文g保护

 

   tsshutdn-------60 U倒计时关机命?/span>

 

taskmgr-------- d理?/span>

 

explorer------- 打开资源理?/span>

 

   progman-------- E序理?/span>

 

   regedit.exe---- 注册?/span>

 

   regedt32------- 注册表编辑器

 

   rononce -p ----15 U关?/span>

 

   cmd.exe--------CMD 命o(h)提示W?/span>

 

   chkdsk.exe-----Chkdsk 盘?gu)(g)?/span>

 

  compmgmt.msc--- 计算机管?/span>

 

lusrmgr.msc---- 本机用户和组

 

   Nslookup-------IP 地址侦测?/span>

 

   fsmgmt.msc----- ׃n文g夹管理器

 

   utilman-------- 辅助工具理?/span>

 

   gpedit.msc----- l策?/span>



]]>
应用HttpClient来对付各U顽固的WEB服务?1)http://www.tkk7.com/hua/archive/2007/03/16/104242.html?/dc:creator>?/author>Fri, 16 Mar 2007 05:57:00 GMThttp://www.tkk7.com/hua/archive/2007/03/16/104242.htmlhttp://www.tkk7.com/hua/comments/104242.htmlhttp://www.tkk7.com/hua/archive/2007/03/16/104242.html#Feedback0http://www.tkk7.com/hua/comments/commentRss/104242.htmlhttp://www.tkk7.com/hua/services/trackbacks/104242.html 

 

我们不可能列举所有可能的固Q我们会(x)针对几种最常见的问题进行处理。当然了(jin)Q正如前面说到的Q如果我们自׃用 java.net.HttpURLConnection来搞定这些问题是很恐怖的事情Q因此在开始之前我们先要介l一下一个开放源码的目Q这个项目就是 Apache开源组l中的httpclientQ它隶属于Jakarta的commons目Q目前的版本?.0RC2。commons下本来已l有一个net的子目Q但是又把httpclient单独提出来,可见http服务器的讉Kl非易事?/p>

Commons-httpclient目是专门设计来简化HTTP客户端与服务器进行各U通讯~程。通过它可以让原来很头疼的事情现在L的解冻I例如你不再管是HTTP或者HTTPS的通讯方式Q告诉它你想使用HTTPS方式Q剩下的事情交给httpclient替你完成。本文会(x)针对我们在编写HTTP客户端程序时l常到的几个问题进行分别介l如何用httpclient来解军_们,Z(jin)让读者更快的熟?zhn)q个目我们最开始先l出一个简单的例子来读取一个网늚内容Q然后@序渐q解x前进中的所有问题?/p>

1Q 读取网?HTTP/HTTPS)内容

下面是我们给出的一个简单的例子用来讉K某个面

/*

 * Created on 2003-12-14 by Liudong

 */

package http.demo;

 

import java.io.IOException;

 

import org.apache.commons.httpclient.*;

import org.apache.commons.httpclient.methods.*;

/**

 * 最单的HTTP客户?/span>,用来演示通过GET或?/span>POST方式讉K某个面

 * @author Liudong

 */

public class SimpleClient {

 

    public static void main(String[] args) throws IOException

    {

        HttpClient client = new HttpClient();    

        //讄代理服务器地址和端?/span>     

        //client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port);

        //使用GETҎ(gu)Q如果服务器需要通过HTTPSq接Q那只需要将下面URL中的http换成https

        HttpMethod method = new GetMethod("http://java.sun.com"); 

        //使用POSTҎ(gu)

        //HttpMethod method = new PostMethod("http://java.sun.com"); 

        client.executeMethod(method);

        //打印服务器返回的状?/span>

        System.out.println(method.getStatusLine());

        //打印q回的信?/span>

        System.out.println(method.getResponseBodyAsString());

        //释放q接

        method.releaseConnection();

    }
}

 

在这个例子中首先创徏一个HTTP客户?HttpClient)的实例,然后选择提交的方法是GET或者POSTQ最后在HttpClient实例上执行提交的Ҏ(gu)Q最后从所选择的提交方法中d服务器反馈回来的l果。这是使用HttpClient的基本流E。其实用一行代码也可以搞定整个请求的q程Q非常的单!


2Q 以GET或者POST方式向网|交参?br />
其实前面一个最单的CZ中我们已l介l了(jin)如何使用GET或者POST方式来请求一个页面,本小节与之不同的是多?jin)提交时讑֮面所需的参敎ͼ我们知道如果是GET的请求方式,那么所有参数都直接攑ֈ面的URL后面用问号与面地址隔开Q每个参数用&隔开Q例如:(x)http://java.sun.com/?name=liudong&mobile=123456Q但是当使用POSTҎ(gu)时就?x)稍微有一点点ȝ(ch)。本节的例子演C向如何查询手机L(fng)所在的城市(jng)Q代码如下:(x)

 

/*

 * Created on 2003-12-7 by Liudong

 */

package http.demo;

 

import java.io.IOException;

 

import org.apache.commons.httpclient.*;

import org.apache.commons.httpclient.methods.*;

/**

 * 提交参数演示

 * 该程序连接到一个用于查询手机号码所属地的页?/span>

 * 以便查询L(fng)D?/span>1330227所在的省䆾以及(qing)城市(jng)

 * @author Liudong

 */

public class SimpleHttpClient {

 

    public static void main(String[] args) throws IOException

    {

        HttpClient client = new HttpClient();

        client.getHostConfiguration().setHost("www.imobile.com.cn", 80, "http");

 

        HttpMethod method = getPostMethod();//使用POST方式提交数据

        client.executeMethod(method);

       //打印服务器返回的状?/span>

        System.out.println(method.getStatusLine());

        //打印l果面

        String response =

           new String(method.getResponseBodyAsString().getBytes("8859_1"));

       //打印q回的信?/span>

        System.out.println(response);

        method.releaseConnection();

    }

    /**

     * 使用GET方式提交数据

     * @return

     */

    private static HttpMethod getGetMethod(){

        return new GetMethod("/simcard.php?simcard=1330227");

    }

    /**

     * 使用POST方式提交数据

     * @return

     */

    private static HttpMethod getPostMethod(){

        PostMethod post = new PostMethod("/simcard.php");

        NameValuePair simcard = new NameValuePair("simcard","1330227");

        post.setRequestBody(new NameValuePair[] { simcard});

        return post;

    }

}

在上面的例子中页?a >http://www.imobile.com.cn/simcard.php需要一个参数是simcardQ这个参数gؓ(f)手机L(fng)D,x机号码的前七位,服务器会(x)q回提交的手机号码对应的省䆾、城?jng)以及(qing)其他详l信息。GET的提交方法只需要在URL后加入参C息,而POST则需要通过NameValuePaircL讄参数名称和它所对应的?/span>

3Q 处理页面重定向

在JSP/Servlet ~程中response.sendRedirectҎ(gu)是使用HTTP协议中的重定向机制。它与JSP中的<jsp:forward ?gt;的区别在于后者是在服务器中实现页面的跌{Q也是说应用容器加载了(jin)所要蟩转的面的内容ƈq回l客L(fng)Q而前者是q回一个状态码Q这些状态码的可能D下表Q然后客L(fng)d需要蟩转到的页面的URLq新加载新的页面。就是这样一个过E,所以我们编E的时候就要通过 HttpMethod.getStatusCode()Ҏ(gu)判断q回值是否ؓ(f)下表中的某个值来判断是否需要蟩转。如果已l确认需要进行页面蟩转了(jin)Q那么可以通过dHTTP头中的location属性来获取新的地址?/span>

状态码

对应HttpServletResponse的常?/span>

详细描述

301

SC_MOVED_PERMANENTLY

面已经怹Ud另外一个新地址

302

SC_MOVED_TEMPORARILY

面暂时Ud到另外一个新的地址

303

SC_SEE_OTHER

客户端请求的地址必须通过另外?/span>URL来访?/span>

307

SC_TEMPORARY_REDIRECT

?/span>SC_MOVED_TEMPORARILY

下面的代码片D|C如何处理页面的重定?/p>

client.executeMethod(post);

        System.out.println(post.getStatusLine().toString()); 

        post.releaseConnection();

        

        //(g)查是否重定向

        int statuscode = post.getStatusCode();

        if ((statuscode == HttpStatus.SC_MOVED_TEMPORARILY) ||

            (statuscode == HttpStatus.SC_MOVED_PERMANENTLY) ||

            (statuscode == HttpStatus.SC_SEE_OTHER) ||

(statuscode == HttpStatus.SC_TEMPORARY_REDIRECT)) {

//d新的URL地址

            Header header = post.getResponseHeader("location");

            if (header != null) {

                String newuri = header.getValue();

                if ((newuri == null) || (newuri.equals("")))

                    newuri = "/"; 

                GetMethod redirect = new GetMethod(newuri);

                client.executeMethod(redirect);

                System.out.println("Redirect:"+ redirect.getStatusLine().toString()); 

                redirect.releaseConnection();

            } else 

                System.out.println("Invalid redirect");

        }

我们可以自行~写两个JSP面Q其中一个页面用response.sendRedirectҎ(gu)重定向到另外一个页面用来测试上面的例子?br />


4Q 模拟输入用户名和口令进行登?/p>

本小节应该说是HTTP客户端编E中最常碰见的问题Q很多网站的内容都只是对注册用户可见的,q种情况下就必须要求使用正确的用户名和口令登录成功后Q方可浏览到惌的页面。因为HTTP协议是无状态的Q也是q接的有效期只限于当前请求,h内容l束后连接就关闭?jin)。在q种情况下ؓ(f)?jin)保存用L(fng)d信息必须使用到Cookie机制。以JSP/ServletZQ当览器请求一个JSP或者是Servlet的页面时Q应用服务器?x)返回一个参敎ͼ名ؓ(f)jsessionidQ因不同应用服务器而异Q,值是一个较长的唯一字符串的CookieQ这个字W串g是当前讉K该站点的?x)话标识。浏览器在每讉K该站点的其他面时候都要带上jsessionidq样的Cookie信息Q应用服务器Ҏ(gu)dq个?x)话标识来获取对应的会(x)话信息?/p>

对于需要用L(fng)录的|站Q一般在用户d成功后会(x)用戯料保存在服务器的?x)话中,q样当访问到其他的页面时候,应用服务器根据浏览器送上的 Cookie中读取当前请求对应的?x)话标识以获得对应的会(x)话信息Q然后就可以判断用户资料是否存在于会(x)话信息中Q如果存在则允许讉K面Q否则蟩转到d面中要求用戯入帐号和口o(h)q行d。这是一般用JSP开发网站在处理用户d的比较通用的方法?/p>

q样一来,对于HTTP的客L(fng)来讲Q如果要讉K一个受保护的页面时必L拟浏览器所做的工作Q首先就是请求登录页面,然后dCookie|再次hd面q加入登录页所需的每个参敎ͼ最后就是请求最l所需的页面。当然在除第一ơ请求外其他的请求都需要附带上Cookie信息以便服务器能判断当前h是否已经通过验证。说?jin)这么多Q可是如果你使用httpclient的话Q你甚至q一行代码都无需增加Q你只需要先传递登录信息执行登录过E,然后直接讉K惌的页面,跟访问一个普通的面没有M区别Q因为类HttpClient已经帮你做了(jin)所有该做的事情?jin),太棒了(jin)!下面的例子实C(jin)q样一个访问的q程?br />

/*

 * Created on 2003-12-7 by Liudong

 */

package http.demo;

 

import org.apache.commons.httpclient.*;

import org.apache.commons.httpclient.cookie.*;

import org.apache.commons.httpclient.methods.*;

 

/**

 * 用来演示d表单的示?/span>

 * @author Liudong

 */

public class FormLoginDemo {

 

    static final String LOGON_SITE = "localhost";

    static final int    LOGON_PORT = 8080;

    

    public static void main(String[] args) throws Exception{

        HttpClient client = new HttpClient();

        client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);

       

       //模拟d面login.jsp->main.jsp

        PostMethod post = new PostMethod("/main.jsp");

        NameValuePair name = new NameValuePair("name", "ld");     

        NameValuePair pass = new NameValuePair("password", "ld");     

        post.setRequestBody(new NameValuePair[]{name,pass});

       int status = client.executeMethod(post);

        System.out.println(post.getResponseBodyAsString());

        post.releaseConnection();  

       

       //查看cookie信息

        CookieSpec cookiespec = CookiePolicy.getDefaultSpec();

        Cookie[] cookies = cookiespec.match(LOGON_SITE, LOGON_PORT, "/", false, client.getState().getCookies());

       if (cookies.length == 0) {

           System.out.println("None");    

       } else {

           for (int i = 0; i < cookies.length; i++) {

               System.out.println(cookies[i].toString());    

           }

       }

       //讉K所需的页?/span>main2.jsp

        GetMethod get = new GetMethod("/main2.jsp");

        client.executeMethod(get);

        System.out.println(get.getResponseBodyAsString());

        get.releaseConnection();

    }

}

5Q 提交XML格式参数

提交XML格式的参数很单,仅仅是一个提交时候的ContentType问题Q下面的例子演示从文件文件中dXML信息q提交给服务器的q程Q该q程可以用来试Web服务?/span>

import java.io.File;

import java.io.FileInputStream;

 

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.methods.EntityEnclosingMethod;

import org.apache.commons.httpclient.methods.PostMethod;

 

/**

 * 用来演示提交XML格式数据的例?/span>

 */

public class PostXMLClient {

 

    public static void main(String[] args) throws Exception {

        File input = new File(“test.xml?;

        PostMethod post = new PostMethod(“http://localhost:8080/httpclient/xml.jsp?;

        // 讄h的内容直接从文g中读?/span>

        post.setRequestBody(new FileInputStream(input));

        

        if (input.length() < Integer.MAX_VALUE) 

            post.setRequestContentLength(input.length());

        else            post.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED);

        

        // 指定h内容的类?/span>

        post.setRequestHeader("Content-type", "text/xml; charset=GBK");

        

        HttpClient httpclient = new HttpClient(); 

        int result = httpclient.executeMethod(post); 

        System.out.println("Response status code: " + result);

        System.out.println("Response body: ");

        System.out.println(post.getResponseBodyAsString());

        post.releaseConnection();

    }

}

6Q 通过HTTP上传文g

httpclient使用?jin)单独的一个HttpMethod子类来处理文件的上传Q这个类是MultipartPostMethodQ该cdl封装了(jin)文g上传的细节,我们要做的仅仅是告诉它我们要上传文g的全路径卛_Q下面的代码片段演示如何使用q个cR?/span>

MultipartPostMethod filePost = new MultipartPostMethod(targetURL);

filePost.addParameter("fileName", targetFilePath);

HttpClient client = new HttpClient();

//׃要上传的文g可能比较?/span>,因此在此讄最大的q接时旉

client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);

int status = client.executeMethod(filePost);

 

上面代码中,targetFilePath即ؓ(f)要上传的文g所在的路径?/p>

7Q 访问启用认证的面

我们l常?x)碰到这L(fng)面Q当讉K它的时候会(x)弹出一个浏览器的对话框要求输入用户名和密码后方可,q种用户认证的方式不同于我们在前面介l的Z表单的用戯n份验证。这是HTTP的认证策略,httpclient支持三种认证方式包括Q基本、摘要以?qing)NTLM认证。其中基本认证最单、通用但也最不安全;摘要认证是在HTTP 1.1中加入的认证方式Q而NTLM则是微Y公司定义的而不是通用的规范,最新版本的NTLM是比摘要认证q要安全的一U方式?/p>

下面例子是从httpclient的CVS服务器中下蝲的,它简单演C如何访问一个认证保护的面Q?br />

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.UsernamePasswordCredentials;

import org.apache.commons.httpclient.methods.GetMethod;

 

public class BasicAuthenticationExample {

    public BasicAuthenticationExample() {

    }

    public static void main(String[] args) throws Exception {

        HttpClient client = new HttpClient();

        client.getState().setCredentials(

            "www.verisign.com",

            "realm",

            new UsernamePasswordCredentials("username", "password")

        );

        GetMethod get = new GetMethod("https://www.verisign.com/products/index.html");

        get.setDoAuthentication( true );

        int status = client.executeMethod( get );

        System.out.println(status+"\n"+ get.getResponseBodyAsString());

        get.releaseConnection();

    }

}

8Q 多U程模式下用httpclient

多线E同时访问httpclientQ例如同时从一个站点上下蝲多个文g。对于同一个HttpConnection同一个时间只能有一个线E访问,Z(jin)保证多线E工作环境下不生冲H,httpclient使用?jin)一个多U程q接理器的c:(x) MultiThreadedHttpConnectionManagerQ要使用q个cd单,只需要在构造HttpClient实例的时候传入即可,代码如下Q?/span>

MultiThreadedHttpConnectionManager connectionManager = 

   new MultiThreadedHttpConnectionManager();

HttpClient client = new HttpClient(connectionManager);

以后管讉Kclient实例卛_?/span>

参考资料:(x)

httpclient首页Q   ?a >http://jakarta.apache.org/commons/httpclient/
关于NTLM是如何工作:(x)  http://davenport.sourceforge.net/ntlm.html 



]]>
վ֩ģ壺 ޹Ʒ| Ƶ| AVպAVһ| þþþþóëƬѿ| ƷҹѸ| ޺Сvideos| һɫѴƬ| ŮоƷƵվ| AVӰԺ߹ۿ| ѴƬ߹ۿ| ѻɫһëƬ| 91԰Ƶ| þþѵľƷ| ۺϽ| ؼؼŷһ| ޻ɫַ| vaþþþ| ˹վvƬѹۿ| ѹۿİ| ޿һ24鶹| һ| Ļþۺ| ʮ˽Ļվ| ƷɫҹƵѿ| ˾Ʒձ11| ߹ۿwwwձվ| ޹Ѽһ| avѴƬ߹ۿ| ޹Ӱavַ| AVһַ| ߹ۿɫƬƵ| ޾ɫ1314ݺ| þ91Ƶۿ | ĻAVһ | ޵һվƵ| av˻վ߹ۿ| պƵѲ| ޾Ʒһ| ޹Ʒ18þþþþ| ɬɬƵ| Ļ|