<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FDS's Blog &#187; JAVASCRIPT</title>
	<atom:link href="http://blog.1xi.net/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.1xi.net</link>
	<description>收藏和分享</description>
	<lastBuildDate>Thu, 12 May 2011 06:33:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>document.body.scrollTop的返回值总是零的处理方法</title>
		<link>http://blog.1xi.net/javascript/document-body-scrolltop</link>
		<comments>http://blog.1xi.net/javascript/document-body-scrolltop#comments</comments>
		<pubDate>Wed, 29 Apr 2009 02:56:10 +0000</pubDate>
		<dc:creator>fangds</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=7539</guid>
		<description><![CDATA[为什么document.body.scrollTop的值总是零呢？原来是头部声明的问题，也是标准的问题。 原来在HTML文件头部声明了这样一句： &#60;!DOCTYPE HTML PUBLIC &#8220;-//W3C//DTD HTML 4.01 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/html4/loose.dtd&#8221;&#62; 改成这样就好了： &#60;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&#62; var scrollPos; if (typeof window.pageYOffset != &#8216;undefined&#8217;) {    scrollPos = window.pageYOffset; } else if (typeof document.compatMode != &#8216;undefined&#8217; &#38;&#38;      document.compatMode != &#8216;BackCompat&#8217;) {    scrollPos = document.documentElement.scrollTop; } else if (typeof document.body != &#8216;undefined&#8217;) [...]]]></description>
			<content:encoded><![CDATA[<p>为什么document.body.scrollTop的值总是零呢？原来是头部声明的问题，也是标准的问题。</p>
<p>原来在HTML文件头部声明了这样一句：<br />
&lt;!DOCTYPE HTML PUBLIC &#8220;-//W3C//DTD HTML 4.01 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/html4/loose.dtd&#8221;&gt;</p>
<p>改成这样就好了：<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</p>
<blockquote>
<p>var scrollPos;<br />
if (typeof window.pageYOffset != &#8216;undefined&#8217;) {<br />
   scrollPos = window.pageYOffset;<br />
}<br />
else if (typeof document.compatMode != &#8216;undefined&#8217; &amp;&amp;<br />
     document.compatMode != &#8216;BackCompat&#8217;) {<br />
   scrollPos = document.documentElement.scrollTop;<br />
}<br />
else if (typeof document.body != &#8216;undefined&#8217;) {<br />
   scrollPos = document.body.scrollTop;<br />
}<br />
alert(scrollPos);</p></blockquote>
<p>一切OK.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/document-body-scrolltop/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JS弹出菜单纵向/横向效果</title>
		<link>http://blog.1xi.net/javascript/js-caidan</link>
		<comments>http://blog.1xi.net/javascript/js-caidan#comments</comments>
		<pubDate>Tue, 24 Mar 2009 09:05:49 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/javascript/js-caidan</guid>
		<description><![CDATA[JS弹出菜单效果，包括纵向和横向的。以下是实现方法。 &#60;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8220;&#62; &#60;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8220;&#62; &#60;HEAD&#62; &#60;TITLE&#62;&#60;/TITLE&#62; &#60;/HEAD&#62; &#60;BODY background=&#8221;img/back.gif&#8221; leftMargin=0 topMargin=0&#62; &#60;script language=&#8221;JavaScript&#8221;&#62; &#60;!&#8211; function mmLoadMenus() {  if (window.mm_menu_1008171701_0) return;  window.mm_menu_1008171701_0 = new Menu(&#8220;root&#8221;,71,18,&#8221;",12,&#8221;#FFFFFF&#8221;,&#8221;#FFFFFF&#8221;,&#8221;#FF9900&#8243;,&#8221;#CC0000&#8243;,&#8221;center&#8221;,&#8221;middle&#8221;,3,0,400,-5,7,true,false,true,0,true,true);/* 后面三个TRUE如果是FALSE就是横向*/  mm_menu_1008171701_0.addMenuItem(&#8220;40头镀铝机&#8221;,&#8221;location=&#8217;111.asp&#8217;&#8221;);  mm_menu_1008171701_0.addMenuItem(&#8220;30头镀铝机&#8221;,&#8221;location=&#8217;222.asp&#8217;&#8221;);  mm_menu_1008171701_0.addMenuItem(&#8220;20头镀铝机&#8221;,&#8221;location=&#8217;333.asp&#8217;&#8221;);  mm_menu_1008171701_0.hideOnMouseOut=true;  mm_menu_1008171701_0.bgColor=&#8217;#555555&#8242;;  mm_menu_1008171701_0.menuBorder=6;  mm_menu_1008171701_0.menuLiteBgColor=&#8217;#FFFFFF&#8217;;  mm_menu_1008171701_0.menuBorderBgColor=&#8217;#777777&#8242;;  mm_menu_1008171701_0.writeMenus(); } // mmLoadMenus() //&#8211;&#62; &#60;/script&#62; &#60;script language=&#8221;JavaScript&#8221;&#62; /**  * mm_menu 20MAR2002 Version 6.0  * [...]]]></description>
			<content:encoded><![CDATA[<p>JS弹出菜单效果，包括纵向和横向的。以下是实现方法。</p>
<blockquote><p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#8220;&gt;<br />
&lt;html xmlns=&#8221;<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>&#8220;&gt;<br />
&lt;HEAD&gt;<br />
&lt;TITLE&gt;&lt;/TITLE&gt;<br />
&lt;/HEAD&gt;</p>
<p>&lt;BODY background=&#8221;img/back.gif&#8221; leftMargin=0 topMargin=0&gt;<br />
&lt;script language=&#8221;JavaScript&#8221;&gt;<br />
&lt;!&#8211;<br />
function mmLoadMenus() {<br />
 if (window.mm_menu_1008171701_0) return;<br />
 window.mm_menu_1008171701_0 = new Menu(&#8220;root&#8221;,71,18,&#8221;",12,&#8221;#FFFFFF&#8221;,&#8221;#FFFFFF&#8221;,&#8221;#FF9900&#8243;,&#8221;#CC0000&#8243;,&#8221;center&#8221;,&#8221;middle&#8221;,3,0,400,-5,7,true,false,true,0,true,true);/* 后面三个TRUE如果是FALSE就是横向*/<br />
 mm_menu_1008171701_0.addMenuItem(&#8220;40头镀铝机&#8221;,&#8221;location=&#8217;111.asp&#8217;&#8221;);<br />
 mm_menu_1008171701_0.addMenuItem(&#8220;30头镀铝机&#8221;,&#8221;location=&#8217;222.asp&#8217;&#8221;);<br />
 mm_menu_1008171701_0.addMenuItem(&#8220;20头镀铝机&#8221;,&#8221;location=&#8217;333.asp&#8217;&#8221;);<br />
 mm_menu_1008171701_0.hideOnMouseOut=true;<br />
 mm_menu_1008171701_0.bgColor=&#8217;#555555&#8242;;<br />
 mm_menu_1008171701_0.menuBorder=6;<br />
 mm_menu_1008171701_0.menuLiteBgColor=&#8217;#FFFFFF&#8217;;<br />
 mm_menu_1008171701_0.menuBorderBgColor=&#8217;#777777&#8242;;<br />
 mm_menu_1008171701_0.writeMenus();<br />
} // mmLoadMenus()<br />
//&#8211;&gt;<br />
&lt;/script&gt;<br />
&lt;script language=&#8221;JavaScript&#8221;&gt;<br />
/**<br />
 * mm_menu 20MAR2002 Version 6.0<br />
 * Andy Finnell, March 2002<br />
 * Copyright (c) 2000-2002 Macromedia, Inc.<br />
 *<br />
 * based on menu.js<br />
 * by gary smith, July 1997<br />
 * Copyright (c) 1997-1999 Netscape Communications Corp.<br />
 *<br />
 * Netscape grants you a royalty free license to use or modify this<br />
 * software provided that this copyright notice appears on all copies.<br />
 * This software is provided &#8220;AS IS,&#8221; without a warranty of any kind.<br />
 */<br />
function Menu(label, mw, mh, fnt, fs, fclr, fhclr, bg, bgh, halgn, valgn, pad, space, to, sx, sy, srel, opq, vert, idt, aw, ah)<br />
{<br />
 this.version = &#8220;020320 [Menu; mm_menu.js]&#8220;;<br />
 this.type = &#8220;Menu&#8221;;<br />
 this.menuWidth = mw;<br />
 this.menuItemHeight = mh;<br />
 this.fontSize = fs;<br />
 this.fontWeight = &#8220;plain&#8221;;<br />
 this.fontFamily = fnt;<br />
 this.fontColor = fclr;<br />
 this.fontColorHilite = fhclr;<br />
 this.bgColor = &#8220;#555555&#8243;;<br />
 this.menuBorder = 1;<br />
 this.menuBgOpaque=opq;<br />
 this.menuItemBorder = 1;<br />
 this.menuItemIndent = idt;<br />
 this.menuItemBgColor = bg;<br />
 this.menuItemVAlign = valgn;<br />
 this.menuItemHAlign = halgn;<br />
 this.menuItemPadding = pad;<br />
 this.menuItemSpacing = space;<br />
 this.menuLiteBgColor = &#8220;#ffffff&#8221;;<br />
 this.menuBorderBgColor = &#8220;#777777&#8243;;<br />
 this.menuHiliteBgColor = bgh;<br />
 this.menuContainerBgColor = &#8220;#cccccc&#8221;;<br />
 this.childMenuIcon = &#8220;arrows.gif&#8221;;<br />
 this.submenuXOffset = sx;<br />
 this.submenuYOffset = sy;<br />
 this.submenuRelativeToItem = srel;<br />
 this.vertical = vert;<br />
 this.items = new Array();<br />
 this.actions = new Array();<br />
 this.childMenus = new Array();<br />
 this.hideOnMouseOut = true;<br />
 this.hideTimeout = to;<br />
 this.addMenuItem = addMenuItem;<br />
 this.writeMenus = writeMenus;<br />
 this.MM_showMenu = MM_showMenu;<br />
 this.onMenuItemOver = onMenuItemOver;<br />
 this.onMenuItemAction = onMenuItemAction;<br />
 this.hideMenu = hideMenu;<br />
 this.hideChildMenu = hideChildMenu;<br />
 if (!window.menus) window.menus = new Array();<br />
 this.label = &#8221; &#8221; + label;<br />
 window.menus[this.label] = this;<br />
 window.menus[window.menus.length] = this;<br />
 if (!window.activeMenus) window.activeMenus = new Array();<br />
}</p>
<p>function addMenuItem(label, action) {<br />
 this.items[this.items.length] = label;<br />
 this.actions[this.actions.length] = action;<br />
}</p>
<p>function FIND(item) {<br />
 if( window.mmIsOpera ) return(document.getElementById(item));<br />
 if (document.all) return(document.all[item]);<br />
 if (document.getElementById) return(document.getElementById(item));<br />
 return(false);<br />
}</p>
<p>function writeMenus(container) {<br />
 if (window.triedToWriteMenus) return;<br />
 var agt = navigator.userAgent.toLowerCase();<br />
 window.mmIsOpera = agt.indexOf(&#8220;opera&#8221;) != -1;<br />
 if (!container &amp;&amp; document.layers) {<br />
  window.delayWriteMenus = this.writeMenus;<br />
  var timer = setTimeout(&#8216;delayWriteMenus()&#8217;, 500);<br />
  container = new Layer(100);<br />
  clearTimeout(timer);<br />
 } else if (document.all || document.hasChildNodes || window.mmIsOpera) {<br />
  document.writeln(&#8216;&lt;span id=&#8221;menuContainer&#8221;&gt;&lt;/span&gt;&#8217;);<br />
  container = FIND(&#8220;menuContainer&#8221;);<br />
 }</p>
<p> window.mmHideMenuTimer = null;<br />
 if (!container) return; <br />
 window.triedToWriteMenus = true;<br />
 container.isContainer = true;<br />
 container.menus = new Array();<br />
 for (var i=0; i&lt;window.menus.length; i++)<br />
  container.menus[i] = window.menus[i];<br />
 window.menus.length = 0;<br />
 var countMenus = 0;<br />
 var countItems = 0;<br />
 var top = 0;<br />
 var content = &#8221;;<br />
 var lrs = false;<br />
 var theStat = &#8220;&#8221;;<br />
 var tsc = 0;<br />
 if (document.layers) lrs = true;<br />
 for (var i=0; i&lt;container.menus.length; i++, countMenus++) {<br />
  var menu = container.menus[i];<br />
  if (menu.bgImageUp || !menu.menuBgOpaque) {<br />
   menu.menuBorder = 0;<br />
   menu.menuItemBorder = 0;<br />
  }<br />
  if (lrs) {<br />
   var menuLayer = new Layer(100, container);<br />
   var lite = new Layer(100, menuLayer);<br />
   lite.top = menu.menuBorder;<br />
   lite.left = menu.menuBorder;<br />
   var body = new Layer(100, lite);<br />
   body.top = menu.menuBorder;<br />
   body.left = menu.menuBorder;<br />
  } else {<br />
   content += &#8221;+<br />
   &#8217;&lt;div id=&#8221;menuLayer&#8217;+ countMenus +&#8217;&#8221; style=&#8221;filter:Alpha(Opacity=90);position:absolute;z-index:1;left:10px;top:&#8217;+ (i * 100) +&#8217;px;visibility:hidden;color:&#8217; +  menu.menuBorderBgColor + &#8216;;&#8221;&gt;\n&#8217;+<br />
   &#8217;  &lt;div id=&#8221;menuLite&#8217;+ countMenus +&#8217;&#8221; style=&#8221;position:absolute;z-index:1;left:&#8217;+ menu.menuBorder +&#8217;px;top:&#8217;+ menu.menuBorder +&#8217;px;visibility:hide;&#8221; onmouseout=&#8221;mouseoutMenu();&#8221;&gt;\n&#8217;+<br />
   &#8217;  &lt;div id=&#8221;menuFg&#8217;+ countMenus +&#8217;&#8221; style=&#8221;position:absolute;left:&#8217;+ menu.menuBorder +&#8217;px;top:&#8217;+ menu.menuBorder +&#8217;px;visibility:hide;&#8221;&gt;\n&#8217;+<br />
   &#8221;;<br />
  }<br />
  var x=i;<br />
  for (var i=0; i&lt;menu.items.length; i++) {<br />
   var item = menu.items[i];<br />
   var childMenu = false;<br />
   var defaultHeight = menu.fontSize+2*menu.menuItemPadding;<br />
   if (item.label) {<br />
    item = item.label;<br />
    childMenu = true;<br />
   }<br />
   menu.menuItemHeight = menu.menuItemHeight || defaultHeight;<br />
   var itemProps = &#8221;;<br />
   if( menu.fontFamily != &#8221; ) itemProps += &#8216;font-family:&#8217; + menu.fontFamily +&#8217;;';<br />
   itemProps += &#8216;font-weight:&#8217; + menu.fontWeight + &#8216;;fontSize:&#8217; + menu.fontSize + &#8216;px;&#8217;;<br />
   if (menu.fontStyle) itemProps += &#8216;font-style:&#8217; + menu.fontStyle + &#8216;;&#8217;;<br />
   if (document.all || window.mmIsOpera)<br />
    itemProps += &#8216;font-size:&#8217; + menu.fontSize + &#8216;px;&#8221; onmouseover=&#8221;onMenuItemOver(null,this);&#8221; onclick=&#8221;onMenuItemAction(null,this);&#8217;;<br />
   else if (!document.layers) {<br />
    itemProps += &#8216;font-size:&#8217; + menu.fontSize + &#8216;px;&#8217;;<br />
   }<br />
   var l;<br />
   if (lrs) {<br />
    var lw = menu.menuWidth;<br />
    if( menu.menuItemHAlign == &#8216;right&#8217; ) lw -= menu.menuItemPadding;<br />
    l = new Layer(lw,body);<br />
   }<br />
   var itemLeft = 0;<br />
   var itemTop = i*menu.menuItemHeight;<br />
   if( !menu.vertical ) {<br />
    itemLeft = i*menu.menuWidth;<br />
    itemTop = 0;<br />
   }<br />
   var dTag = &#8216;&lt;div id=&#8221;menuItem&#8217;+ countItems +&#8217;&#8221; style=&#8221;position:absolute;left:&#8217; + itemLeft + &#8216;px;top:&#8217;+ itemTop +&#8217;px;&#8217;+ itemProps +&#8217;&#8221;&gt;&#8217;;<br />
   var dClose = &#8216;&lt;/div&gt;&#8217;<br />
   if (menu.bgImageUp) dTag = &#8216;&lt;div id=&#8221;menuItem&#8217;+ countItems +&#8217;&#8221; style=&#8221;background:url(&#8216;+menu.bgImageUp+&#8217;);position:absolute;left:&#8217; + itemLeft + &#8216;px;top:&#8217;+ itemTop +&#8217;px;&#8217;+ itemProps +&#8217;&#8221;&gt;&#8217;;</p>
<p>   var left = 0, top = 0, right = 0, bottom = 0;<br />
   left = 1 + menu.menuItemPadding + menu.menuItemIndent;<br />
   right = left + menu.menuWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
   if( menu.menuItemVAlign == &#8216;top&#8217; ) top = menu.menuItemPadding;<br />
   if( menu.menuItemVAlign == &#8216;bottom&#8217; ) top = menu.menuItemHeight-menu.fontSize-1-menu.menuItemPadding;<br />
   if( menu.menuItemVAlign == &#8216;middle&#8217; ) top = ((menu.menuItemHeight/2)-(menu.fontSize/2)-1);<br />
   bottom = menu.menuItemHeight &#8211; 2*menu.menuItemPadding;<br />
   var textProps = &#8216;position:absolute;left:&#8217; + left + &#8216;px;top:&#8217; + top + &#8216;px;&#8217;;<br />
   if (lrs) {<br />
    textProps +=itemProps + &#8216;right:&#8217; + right + &#8216;;bottom:&#8217; + bottom + &#8216;;&#8217;;<br />
    dTag = &#8220;&#8221;;<br />
    dClose = &#8220;&#8221;;<br />
   }<br />
   <br />
   if(document.all &amp;&amp; !window.mmIsOpera) {<br />
    item = &#8216;&lt;div align=&#8221;&#8216; + menu.menuItemHAlign + &#8216;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
   } else if (lrs) {<br />
    item = &#8216;&lt;div style=&#8221;text-align:&#8217; + menu.menuItemHAlign + &#8216;;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
   } else {<br />
    var hitem = null;<br />
    if( menu.menuItemHAlign != &#8216;left&#8217; ) {<br />
     if(window.mmIsOpera) {<br />
      var operaWidth = menu.menuItemHAlign == &#8216;center&#8217; ? -(menu.menuWidth-2*menu.menuItemPadding) : (menu.menuWidth-6*menu.menuItemPadding);<br />
      hitem = &#8216;&lt;div id=&#8221;menuItemHilite&#8217; + countItems + &#8216;Shim&#8221; style=&#8221;position:absolute;top:1px;left:&#8217; + menu.menuItemPadding + &#8216;px;width:&#8217; + operaWidth + &#8216;px;text-align:&#8217;<br />
       + menu.menuItemHAlign + &#8216;;visibility:visible;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
      item = &#8216;&lt;div id=&#8221;menuItemText&#8217; + countItems + &#8216;Shim&#8221; style=&#8221;position:absolute;top:1px;left:&#8217; + menu.menuItemPadding + &#8216;px;width:&#8217; + operaWidth + &#8216;px;text-align:&#8217;<br />
       + menu.menuItemHAlign + &#8216;;visibility:visible;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
     } else {<br />
      hitem = &#8216;&lt;div id=&#8221;menuItemHilite&#8217; + countItems + &#8216;Shim&#8221; style=&#8221;position:absolute;top:1px;left:1px;right:-&#8217; + (left+menu.menuWidth-3*menu.menuItemPadding) + &#8216;px;text-align:&#8217;<br />
       + menu.menuItemHAlign + &#8216;;visibility:visible;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
      item = &#8216;&lt;div id=&#8221;menuItemText&#8217; + countItems + &#8216;Shim&#8221; style=&#8221;position:absolute;top:1px;left:1px;right:-&#8217; + (left+menu.menuWidth-3*menu.menuItemPadding) + &#8216;px;text-align:&#8217;<br />
       + menu.menuItemHAlign + &#8216;;visibility:visible;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
     }<br />
    } else hitem = null;<br />
   }<br />
   if(document.all &amp;&amp; !window.mmIsOpera) item = &#8216;&lt;div id=&#8221;menuItemShim&#8217; + countItems + &#8216;&#8221; style=&#8221;position:absolute;left:0px;top:0px;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
   var dText = &#8216;&lt;div id=&#8221;menuItemText&#8217;+ countItems +&#8217;&#8221; style=&#8221;&#8216; + textProps + &#8216;color:&#8217;+ menu.fontColor +&#8217;;&#8221;&gt;&#8217;+ item +&#8217;&amp;nbsp&lt;/div&gt;\n&#8217;<br />
      + &#8216;&lt;div id=&#8221;menuItemHilite&#8217;+ countItems +&#8217;&#8221; style=&#8221;&#8216; + textProps + &#8216;color:&#8217;+ menu.fontColorHilite +&#8217;;visibility:hidden;&#8221;&gt;&#8217;<br />
      + (hitem||item) +&#8217;&amp;nbsp&lt;/div&gt;&#8217;;<br />
   if (childMenu) content += ( dTag + dText + &#8216;&lt;div id=&#8221;childMenu&#8217;+ countItems +&#8217;&#8221; style=&#8221;position:absolute;left:0px;top:3px;&#8221;&gt;&lt;img src=&#8221;&#8216;+ menu.childMenuIcon +&#8217;&#8221;&gt;&lt;/div&gt;\n&#8217; + dClose);<br />
   else content += ( dTag + dText + dClose);<br />
   if (lrs) {<br />
    l.document.open(&#8220;text/html&#8221;);<br />
    l.document.writeln(content);<br />
    l.document.close(); <br />
    content = &#8221;;<br />
    theStat += &#8220;-&#8221;;<br />
    tsc++;<br />
    if (tsc &gt; 50) {<br />
     tsc = 0;<br />
     theStat = &#8220;&#8221;;<br />
    }<br />
    status = theStat;<br />
   }<br />
   countItems++; <br />
  }<br />
  if (lrs) {<br />
   var focusItem = new Layer(100, body);<br />
   focusItem.visiblity=&#8221;hidden&#8221;;<br />
   focusItem.document.open(&#8220;text/html&#8221;);<br />
   focusItem.document.writeln(&#8220;&amp;nbsp;&#8221;);<br />
   focusItem.document.close(); <br />
  } else {<br />
    content += &#8216;   &lt;div id=&#8221;focusItem&#8217;+ countMenus +&#8217;&#8221; style=&#8221;position:absolute;left:0px;top:0px;visibility:hide;&#8221; onclick=&#8221;onMenuItemAction(null,this);&#8221;&gt;&amp;nbsp;&lt;/div&gt;\n&#8217;;<br />
    content += &#8216;   &lt;/div&gt;\n  &lt;/div&gt;\n&lt;/div&gt;\n&#8217;;<br />
  }<br />
  i=x;<br />
 }<br />
 if (document.layers) {  <br />
  container.clip.width = window.innerWidth;<br />
  container.clip.height = window.innerHeight;<br />
  container.onmouseout = mouseoutMenu;<br />
  container.menuContainerBgColor = this.menuContainerBgColor;<br />
  for (var i=0; i&lt;container.document.layers.length; i++) {<br />
   proto = container.menus[i];<br />
   var menu = container.document.layers[i];<br />
   container.menus[i].menuLayer = menu;<br />
   container.menus[i].menuLayer.Menu = container.menus[i];<br />
   container.menus[i].menuLayer.Menu.container = container;<br />
   var body = menu.document.layers[0].document.layers[0];<br />
   body.clip.width = proto.menuWidth || body.clip.width;<br />
   body.clip.height = proto.menuHeight || body.clip.height;<br />
   for (var n=0; n&lt;body.document.layers.length-1; n++) {<br />
    var l = body.document.layers[n];<br />
    l.Menu = container.menus[i];<br />
    l.menuHiliteBgColor = proto.menuHiliteBgColor;<br />
    l.document.bgColor = proto.menuItemBgColor;<br />
    l.saveColor = proto.menuItemBgColor;<br />
    l.onmouseover = proto.onMenuItemOver;<br />
    l.onclick = proto.onMenuItemAction;<br />
    l.mmaction = container.menus[i].actions[n];<br />
    l.focusItem = body.document.layers[body.document.layers.length-1];<br />
    l.clip.width = proto.menuWidth || body.clip.width;<br />
    l.clip.height = proto.menuItemHeight || l.clip.height;<br />
    if (n&gt;0) {<br />
     if( l.Menu.vertical ) l.top = body.document.layers[n-1].top + body.document.layers[n-1].clip.height + proto.menuItemBorder + proto.menuItemSpacing;<br />
     else l.left = body.document.layers[n-1].left + body.document.layers[n-1].clip.width + proto.menuItemBorder + proto.menuItemSpacing;<br />
    }<br />
    l.hilite = l.document.layers[1];<br />
    if (proto.bgImageUp) l.background.src = proto.bgImageUp;<br />
    l.document.layers[1].isHilite = true;<br />
    if (l.document.layers.length &gt; 2) {<br />
     l.childMenu = container.menus[i].items[n].menuLayer;<br />
     l.document.layers[2].left = l.clip.width -13;<br />
     l.document.layers[2].top = (l.clip.height / 2) -4;<br />
     l.document.layers[2].clip.left += 3;<br />
     l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;<br />
    }<br />
   }<br />
   if( proto.menuBgOpaque ) body.document.bgColor = proto.bgColor;<br />
   if( proto.vertical ) {<br />
    body.clip.width  = l.clip.width +proto.menuBorder;<br />
    body.clip.height = l.top + l.clip.height +proto.menuBorder;<br />
   } else {<br />
    body.clip.height  = l.clip.height +proto.menuBorder;<br />
    body.clip.width = l.left + l.clip.width  +proto.menuBorder;<br />
    if( body.clip.width &gt; window.innerWidth ) body.clip.width = window.innerWidth;<br />
   }<br />
   var focusItem = body.document.layers[n];<br />
   focusItem.clip.width = body.clip.width;<br />
   focusItem.Menu = l.Menu;<br />
   focusItem.top = -30;<br />
            focusItem.captureEvents(Event.MOUSEDOWN);<br />
            focusItem.onmousedown = onMenuItemDown;<br />
   if( proto.menuBgOpaque ) menu.document.bgColor = proto.menuBorderBgColor;<br />
   var lite = menu.document.layers[0];<br />
   if( proto.menuBgOpaque ) lite.document.bgColor = proto.menuLiteBgColor;<br />
   lite.clip.width = body.clip.width +1;<br />
   lite.clip.height = body.clip.height +1;<br />
   menu.clip.width = body.clip.width + (proto.menuBorder * 3) ;<br />
   menu.clip.height = body.clip.height + (proto.menuBorder * 3);<br />
  }<br />
 } else {<br />
  if ((!document.all) &amp;&amp; (container.hasChildNodes) &amp;&amp; !window.mmIsOpera) {<br />
   container.innerHTML=content;<br />
  } else {<br />
   container.document.open(&#8220;text/html&#8221;);<br />
   container.document.writeln(content);<br />
   container.document.close(); <br />
  }<br />
  if (!FIND(&#8220;menuLayer0&#8243;)) return;<br />
  var menuCount = 0;<br />
  for (var x=0; x&lt;container.menus.length; x++) {<br />
   var menuLayer = FIND(&#8220;menuLayer&#8221; + x);<br />
   container.menus[x].menuLayer = &#8220;menuLayer&#8221; + x;<br />
   menuLayer.Menu = container.menus[x];<br />
   menuLayer.Menu.container = &#8220;menuLayer&#8221; + x;<br />
   menuLayer.style.zindex = 1;<br />
      var s = menuLayer.style;<br />
   s.pixeltop = -300;<br />
   s.pixelleft = -300;<br />
   s.top = &#8216;-300px&#8217;;<br />
   s.left = &#8216;-300px&#8217;;</p>
<p>   var menu = container.menus[x];<br />
   menu.menuItemWidth = menu.menuWidth || menu.menuIEWidth || 140;<br />
   if( menu.menuBgOpaque ) menuLayer.style.backgroundColor = menu.menuBorderBgColor;<br />
   var top = 0;<br />
   var left = 0;<br />
   menu.menuItemLayers = new Array();<br />
   for (var i=0; i&lt;container.menus[x].items.length; i++) {<br />
    var l = FIND(&#8220;menuItem&#8221; + menuCount);<br />
    l.Menu = container.menus[x];<br />
    l.Menu.menuItemLayers[l.Menu.menuItemLayers.length] = l;<br />
    if (l.addEventListener || window.mmIsOpera) {<br />
     l.style.width = menu.menuItemWidth + &#8216;px&#8217;;<br />
     l.style.height = menu.menuItemHeight + &#8216;px&#8217;;<br />
     l.style.pixelWidth = menu.menuItemWidth;<br />
     l.style.pixelHeight = menu.menuItemHeight;<br />
     l.style.top = top + &#8216;px&#8217;;<br />
     l.style.left = left + &#8216;px&#8217;;<br />
     if(l.addEventListener) {<br />
      l.addEventListener(&#8220;mouseover&#8221;, onMenuItemOver, false);<br />
      l.addEventListener(&#8220;click&#8221;, onMenuItemAction, false);<br />
      l.addEventListener(&#8220;mouseout&#8221;, mouseoutMenu, false);<br />
     }<br />
     if( menu.menuItemHAlign != &#8216;left&#8217; ) {<br />
      l.hiliteShim = FIND(&#8220;menuItemHilite&#8221; + menuCount + &#8220;Shim&#8221;);<br />
      l.hiliteShim.style.visibility = &#8220;inherit&#8221;;<br />
      l.textShim = FIND(&#8220;menuItemText&#8221; + menuCount + &#8220;Shim&#8221;);<br />
      l.hiliteShim.style.pixelWidth = menu.menuItemWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
      l.hiliteShim.style.width = l.hiliteShim.style.pixelWidth;<br />
      l.textShim.style.pixelWidth = menu.menuItemWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
      l.textShim.style.width = l.textShim.style.pixelWidth; <br />
     }<br />
    } else {<br />
     l.style.pixelWidth = menu.menuItemWidth;<br />
     l.style.pixelHeight = menu.menuItemHeight;<br />
     l.style.pixelTop = top;<br />
     l.style.pixelLeft = left;<br />
     if( menu.menuItemHAlign != &#8216;left&#8217; ) {<br />
      var shim = FIND(&#8220;menuItemShim&#8221; + menuCount);<br />
      shim[0].style.pixelWidth = menu.menuItemWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
      shim[1].style.pixelWidth = menu.menuItemWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
      shim[0].style.width = shim[0].style.pixelWidth + &#8216;px&#8217;;<br />
      shim[1].style.width = shim[1].style.pixelWidth + &#8216;px&#8217;;<br />
     }<br />
    }<br />
    if( menu.vertical ) top = top + menu.menuItemHeight+menu.menuItemBorder+menu.menuItemSpacing;<br />
    else left = left + menu.menuItemWidth+menu.menuItemBorder+menu.menuItemSpacing;<br />
    l.style.fontSize = menu.fontSize + &#8216;px&#8217;;<br />
    l.style.backgroundColor = menu.menuItemBgColor;<br />
    l.style.visibility = &#8220;inherit&#8221;;<br />
    l.saveColor = menu.menuItemBgColor;<br />
    l.menuHiliteBgColor = menu.menuHiliteBgColor;<br />
    l.mmaction = container.menus[x].actions[i];<br />
    l.hilite = FIND(&#8220;menuItemHilite&#8221; + menuCount);<br />
    l.focusItem = FIND(&#8220;focusItem&#8221; + x);<br />
    l.focusItem.style.pixelTop = -30;<br />
    l.focusItem.style.top = &#8216;-30px&#8217;;<br />
    var childItem = FIND(&#8220;childMenu&#8221; + menuCount);<br />
    if (childItem) {<br />
     l.childMenu = container.menus[x].items[i].menuLayer;<br />
     childItem.style.pixelLeft = menu.menuItemWidth -11;<br />
     childItem.style.left = childItem.style.pixelLeft + &#8216;px&#8217;;<br />
     childItem.style.pixelTop = (menu.menuItemHeight /2) -4;<br />
     childItem.style.top = childItem.style.pixelTop + &#8216;px&#8217;;<br />
     l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;<br />
    }<br />
    l.style.cursor = &#8220;hand&#8221;;<br />
    menuCount++;<br />
   }<br />
   if( menu.vertical ) {<br />
    menu.menuHeight = top-1-menu.menuItemSpacing;<br />
    menu.menuWidth = menu.menuItemWidth;<br />
   } else {<br />
    menu.menuHeight = menu.menuItemHeight;<br />
    menu.menuWidth = left-1-menu.menuItemSpacing;<br />
   }</p>
<p>   var lite = FIND(&#8220;menuLite&#8221; + x);<br />
   var s = lite.style;<br />
   s.pixelHeight = menu.menuHeight +(menu.menuBorder * 2);<br />
   s.height = s.pixelHeight + &#8216;px&#8217;;<br />
   s.pixelWidth = menu.menuWidth + (menu.menuBorder * 2);<br />
   s.width = s.pixelWidth + &#8216;px&#8217;;<br />
   if( menu.menuBgOpaque ) s.backgroundColor = menu.menuLiteBgColor;</p>
<p>   var body = FIND(&#8220;menuFg&#8221; + x);<br />
   s = body.style;<br />
   s.pixelHeight = menu.menuHeight + menu.menuBorder;<br />
   s.height = s.pixelHeight + &#8216;px&#8217;;<br />
   s.pixelWidth = menu.menuWidth + menu.menuBorder;<br />
   s.width = s.pixelWidth + &#8216;px&#8217;;<br />
   if( menu.menuBgOpaque ) s.backgroundColor = menu.bgColor;</p>
<p>   s = menuLayer.style;<br />
   s.pixelWidth  = menu.menuWidth + (menu.menuBorder * 4);<br />
   s.width = s.pixelWidth + &#8216;px&#8217;;<br />
   s.pixelHeight  = menu.menuHeight+(menu.menuBorder*4);<br />
   s.height = s.pixelHeight + &#8216;px&#8217;;<br />
  }<br />
 }<br />
 if (document.captureEvents) document.captureEvents(Event.MOUSEUP);<br />
 if (document.addEventListener) document.addEventListener(&#8220;mouseup&#8221;, onMenuItemOver, false);<br />
 if (document.layers &amp;&amp; window.innerWidth) {<br />
  window.onresize = NS4resize;<br />
  window.NS4sIW = window.innerWidth;<br />
  window.NS4sIH = window.innerHeight;<br />
  setTimeout(&#8220;NS4resize()&#8221;,500);<br />
 }<br />
 document.onmouseup = mouseupMenu;<br />
 window.mmWroteMenu = true;<br />
 status = &#8220;&#8221;;<br />
}</p>
<p>function NS4resize() {<br />
 if (NS4sIW != window.innerWidth || NS4sIH != window.innerHeight) window.location.reload();<br />
}</p>
<p>function onMenuItemOver(e, l) {<br />
 MM_clearTimeout();<br />
 l = l || this;<br />
 a = window.ActiveMenuItem;<br />
 if (document.layers) {<br />
  if (a) {<br />
   a.document.bgColor = a.saveColor;<br />
   if (a.hilite) a.hilite.visibility = &#8220;hidden&#8221;;<br />
   if (a.Menu.bgImageOver) a.background.src = a.Menu.bgImageUp;<br />
   a.focusItem.top = -100;<br />
   a.clicked = false;<br />
  }<br />
  if (l.hilite) {<br />
   l.document.bgColor = l.menuHiliteBgColor;<br />
   l.zIndex = 1;<br />
   l.hilite.visibility = &#8220;inherit&#8221;;<br />
   l.hilite.zIndex = 2;<br />
   l.document.layers[1].zIndex = 1;<br />
   l.focusItem.zIndex = this.zIndex +2;<br />
  }<br />
  if (l.Menu.bgImageOver) l.background.src = l.Menu.bgImageOver;<br />
  l.focusItem.top = this.top;<br />
  l.focusItem.left = this.left;<br />
  l.focusItem.clip.width = l.clip.width;<br />
  l.focusItem.clip.height = l.clip.height;<br />
  l.Menu.hideChildMenu(l);<br />
 } else if (l.style &amp;&amp; l.Menu) {<br />
  if (a) {<br />
   a.style.backgroundColor = a.saveColor;<br />
   if (a.hilite) a.hilite.style.visibility = &#8220;hidden&#8221;;<br />
   if (a.hiliteShim) a.hiliteShim.style.visibility = &#8220;inherit&#8221;;<br />
   if (a.Menu.bgImageUp) a.style.background = &#8220;url(&#8221; + a.Menu.bgImageUp +&#8221;)&#8221;;;<br />
  }<br />
  l.style.backgroundColor = l.menuHiliteBgColor;<br />
  l.zIndex = 1;<br />
  if (l.Menu.bgImageOver) l.style.background = &#8220;url(&#8221; + l.Menu.bgImageOver +&#8221;)&#8221;;<br />
  if (l.hilite) {<br />
   l.hilite.style.visibility = &#8220;inherit&#8221;;<br />
   if( l.hiliteShim ) l.hiliteShim.style.visibility = &#8220;visible&#8221;;<br />
  }<br />
  l.focusItem.style.pixelTop = l.style.pixelTop;<br />
  l.focusItem.style.top = l.focusItem.style.pixelTop + &#8216;px&#8217;;<br />
  l.focusItem.style.pixelLeft = l.style.pixelLeft;<br />
  l.focusItem.style.left = l.focusItem.style.pixelLeft + &#8216;px&#8217;;<br />
  l.focusItem.style.zIndex = l.zIndex +1;<br />
  l.Menu.hideChildMenu(l);<br />
 } else return;<br />
 window.ActiveMenuItem = l;<br />
}</p>
<p>function onMenuItemAction(e, l) {<br />
 l = window.ActiveMenuItem;<br />
 if (!l) return;<br />
 hideActiveMenus();<br />
 if (l.mmaction) eval(&#8220;&#8221; + l.mmaction);<br />
 window.ActiveMenuItem = 0;<br />
}</p>
<p>function MM_clearTimeout() {<br />
 if (mmHideMenuTimer) clearTimeout(mmHideMenuTimer);<br />
 mmHideMenuTimer = null;<br />
 mmDHFlag = false;<br />
}</p>
<p>function MM_startTimeout() {<br />
 if( window.ActiveMenu ) {<br />
  mmStart = new Date();<br />
  mmDHFlag = true;<br />
  mmHideMenuTimer = setTimeout(&#8220;mmDoHide()&#8221;, window.ActiveMenu.Menu.hideTimeout);<br />
 }<br />
}</p>
<p>function mmDoHide() {<br />
 if (!mmDHFlag || !window.ActiveMenu) return;<br />
 var elapsed = new Date() &#8211; mmStart;<br />
 var timeout = window.ActiveMenu.Menu.hideTimeout;<br />
 if (elapsed &lt; timeout) {<br />
  mmHideMenuTimer = setTimeout(&#8220;mmDoHide()&#8221;, timeout+100-elapsed);<br />
  return;<br />
 }<br />
 mmDHFlag = false;<br />
 hideActiveMenus();<br />
 window.ActiveMenuItem = 0;<br />
}</p>
<p>function MM_showMenu(menu, x, y, child, imgname) {<br />
 if (!window.mmWroteMenu) return;<br />
 MM_clearTimeout();<br />
 if (menu) {<br />
  var obj = FIND(imgname) || document.images[imgname] || document.links[imgname] || document.anchors[imgname];<br />
  x = moveXbySlicePos (x, obj);<br />
  y = moveYbySlicePos (y, obj);<br />
 }<br />
 if (document.layers) {<br />
  if (menu) {<br />
   var l = menu.menuLayer || menu;<br />
   l.top = l.left = 1;<br />
   hideActiveMenus();<br />
   if (this.visibility) l = this;<br />
   window.ActiveMenu = l;<br />
  } else {<br />
   var l = child;<br />
  }<br />
  if (!l) return;<br />
  for (var i=0; i&lt;l.layers.length; i++) {      <br />
   if (!l.layers[i].isHilite) l.layers[i].visibility = &#8220;inherit&#8221;;<br />
   if (l.layers[i].document.layers.length &gt; 0) MM_showMenu(null, &#8220;relative&#8221;, &#8220;relative&#8221;, l.layers[i]);<br />
  }<br />
  if (l.parentLayer) {<br />
   if (x != &#8220;relative&#8221;) l.parentLayer.left = x || window.pageX || 0;<br />
   if (l.parentLayer.left + l.clip.width &gt; window.innerWidth) l.parentLayer.left -= (l.parentLayer.left + l.clip.width &#8211; window.innerWidth);<br />
   if (y != &#8220;relative&#8221;) l.parentLayer.top = y || window.pageY || 0;<br />
   if (l.parentLayer.isContainer) {<br />
    l.Menu.xOffset = window.pageXOffset;<br />
    l.Menu.yOffset = window.pageYOffset;<br />
    l.parentLayer.clip.width = window.ActiveMenu.clip.width +2;<br />
    l.parentLayer.clip.height = window.ActiveMenu.clip.height +2;<br />
    if (l.parentLayer.menuContainerBgColor &amp;&amp; l.Menu.menuBgOpaque ) l.parentLayer.document.bgColor = l.parentLayer.menuContainerBgColor;<br />
   }<br />
  }<br />
  l.visibility = &#8220;inherit&#8221;;<br />
  if (l.Menu) l.Menu.container.visibility = &#8220;inherit&#8221;;<br />
 } else if (FIND(&#8220;menuItem0&#8243;)) {<br />
  var l = menu.menuLayer || menu; <br />
  hideActiveMenus();<br />
  if (typeof(l) == &#8220;string&#8221;) l = FIND(l);<br />
  window.ActiveMenu = l;<br />
  var s = l.style;<br />
  s.visibility = &#8220;inherit&#8221;;<br />
  if (x != &#8220;relative&#8221;) {<br />
   s.pixelLeft = x || (window.pageX + document.body.scrollLeft) || 0;<br />
   s.left = s.pixelLeft + &#8216;px&#8217;;<br />
  }<br />
  if (y != &#8220;relative&#8221;) {<br />
   s.pixelTop = y || (window.pageY + document.body.scrollTop) || 0;<br />
   s.top = s.pixelTop + &#8216;px&#8217;;<br />
  }<br />
  l.Menu.xOffset = document.body.scrollLeft;<br />
  l.Menu.yOffset = document.body.scrollTop;<br />
 }<br />
 if (menu) window.activeMenus[window.activeMenus.length] = l;<br />
 MM_clearTimeout();<br />
}</p>
<p>function onMenuItemDown(e, l) {<br />
 var a = window.ActiveMenuItem;<br />
 if (document.layers &amp;&amp; a) {<br />
  a.eX = e.pageX;<br />
  a.eY = e.pageY;<br />
  a.clicked = true;<br />
    }<br />
}</p>
<p>function mouseupMenu(e) {<br />
 hideMenu(true, e);<br />
 hideActiveMenus();<br />
 return true;<br />
}<br />
function getExplorerVersion() {<br />
 var ieVers = parseFloat(navigator.appVersion);<br />
 if( navigator.appName != &#8216;Microsoft Internet Explorer&#8217; ) return ieVers;<br />
 var tempVers = navigator.appVersion;<br />
 var i = tempVers.indexOf( &#8216;MSIE &#8216; );<br />
 if( i &gt;= 0 ) {<br />
  tempVers = tempVers.substring( i+5 );<br />
  ieVers = parseFloat( tempVers );<br />
 }<br />
 return ieVers;<br />
}</p>
<p>function mouseoutMenu() {<br />
 if ((navigator.appName == &#8220;Microsoft Internet Explorer&#8221;) &amp;&amp; (getExplorerVersion() &lt; 4.5))<br />
  return true;<br />
 hideMenu(false, false);<br />
 return true;<br />
}</p>
<p>function hideMenu(mouseup, e) {<br />
 var a = window.ActiveMenuItem;<br />
 if (a &amp;&amp; document.layers) {<br />
  a.document.bgColor = a.saveColor;<br />
  a.focusItem.top = -30;<br />
  if (a.hilite) a.hilite.visibility = &#8220;hidden&#8221;;<br />
  if (mouseup &amp;&amp; a.mmaction &amp;&amp; a.clicked &amp;&amp; window.ActiveMenu) {<br />
    if (a.eX &lt;= e.pageX+15 &amp;&amp; a.eX &gt;= e.pageX-15 &amp;&amp; a.eY &lt;= e.pageY+10 &amp;&amp; a.eY &gt;= e.pageY-10) {<br />
    setTimeout(&#8216;window.ActiveMenu.Menu.onMenuItemAction();&#8217;, 500);<br />
   }<br />
  }<br />
  a.clicked = false;<br />
  if (a.Menu.bgImageOver) a.background.src = a.Menu.bgImageUp;<br />
 } else if (window.ActiveMenu &amp;&amp; FIND(&#8220;menuItem0&#8243;)) {<br />
  if (a) {<br />
   a.style.backgroundColor = a.saveColor;<br />
   if (a.hilite) a.hilite.style.visibility = &#8220;hidden&#8221;;<br />
   if (a.hiliteShim) a.hiliteShim.style.visibility = &#8220;inherit&#8221;;<br />
   if (a.Menu.bgImageUp) a.style.background = &#8220;url(&#8221; + a.Menu.bgImageUp +&#8221;)&#8221;;<br />
  }<br />
 }<br />
 if (!mouseup &amp;&amp; window.ActiveMenu) {<br />
  if (window.ActiveMenu.Menu) {<br />
   if (window.ActiveMenu.Menu.hideOnMouseOut) MM_startTimeout();<br />
   return(true);<br />
  }<br />
 }<br />
 return(true);<br />
}</p>
<p>function hideChildMenu(hcmLayer) {<br />
 MM_clearTimeout();<br />
 var l = hcmLayer;<br />
 for (var i=0; i &lt; l.Menu.childMenus.length; i++) {<br />
  var theLayer = l.Menu.childMenus[i];<br />
  if (document.layers) theLayer.visibility = &#8220;hidden&#8221;;<br />
  else {<br />
   theLayer = FIND(theLayer);<br />
   theLayer.style.visibility = &#8220;hidden&#8221;;<br />
   if( theLayer.Menu.menuItemHAlign != &#8216;left&#8217; ) {<br />
    for(var j = 0; j &lt; theLayer.Menu.menuItemLayers.length; j++) {<br />
     var itemLayer = theLayer.Menu.menuItemLayers[j];<br />
     if(itemLayer.textShim) itemLayer.textShim.style.visibility = &#8220;inherit&#8221;;<br />
    }<br />
   }<br />
  }<br />
  theLayer.Menu.hideChildMenu(theLayer);<br />
 }<br />
 if (l.childMenu) {<br />
  var childMenu = l.childMenu;<br />
  if (document.layers) {<br />
   l.Menu.MM_showMenu(null,null,null,childMenu.layers[0]);<br />
   childMenu.zIndex = l.parentLayer.zIndex +1;<br />
   childMenu.top = l.Menu.menuLayer.top + l.Menu.submenuYOffset;<br />
   if( l.Menu.vertical ) {<br />
    if( l.Menu.submenuRelativeToItem ) childMenu.top += l.top + l.parentLayer.top;<br />
    childMenu.left = l.parentLayer.left + l.parentLayer.clip.width &#8211; (2*l.Menu.menuBorder) + l.Menu.menuLayer.left + l.Menu.submenuXOffset;<br />
   } else {<br />
    childMenu.top += l.top + l.parentLayer.top; <br />
    if( l.Menu.submenuRelativeToItem ) childMenu.left = l.Menu.menuLayer.left + l.left + l.clip.width + (2*l.Menu.menuBorder) + l.Menu.submenuXOffset;<br />
    else childMenu.left = l.parentLayer.left + l.parentLayer.clip.width &#8211; (2*l.Menu.menuBorder) + l.Menu.menuLayer.left + l.Menu.submenuXOffset;<br />
   }<br />
   if( childMenu.left &lt; l.Menu.container.clip.left ) l.Menu.container.clip.left = childMenu.left;<br />
   var w = childMenu.clip.width+childMenu.left-l.Menu.container.clip.left;<br />
   if (w &gt; l.Menu.container.clip.width)  l.Menu.container.clip.width = w;<br />
   var h = childMenu.clip.height+childMenu.top-l.Menu.container.clip.top;<br />
   if (h &gt; l.Menu.container.clip.height) l.Menu.container.clip.height = h;<br />
   l.document.layers[1].zIndex = 0;<br />
   childMenu.visibility = &#8220;inherit&#8221;;<br />
  } else if (FIND(&#8220;menuItem0&#8243;)) {<br />
   childMenu = FIND(l.childMenu);<br />
   var menuLayer = FIND(l.Menu.menuLayer);<br />
   var s = childMenu.style;<br />
   s.zIndex = menuLayer.style.zIndex+1;<br />
   if (document.all || window.mmIsOpera) {<br />
    s.pixelTop = menuLayer.style.pixelTop + l.Menu.submenuYOffset;<br />
    if( l.Menu.vertical ) {<br />
     if( l.Menu.submenuRelativeToItem ) s.pixelTop += l.style.pixelTop;<br />
     s.pixelLeft = l.style.pixelWidth + menuLayer.style.pixelLeft + l.Menu.submenuXOffset;<br />
     s.left = s.pixelLeft + &#8216;px&#8217;;<br />
    } else {<br />
     s.pixelTop += l.style.pixelTop;<br />
     if( l.Menu.submenuRelativeToItem ) s.pixelLeft = menuLayer.style.pixelLeft + l.style.pixelLeft + l.style.pixelWidth + (2*l.Menu.menuBorder) + l.Menu.submenuXOffset;<br />
     else s.pixelLeft = (menuLayer.style.pixelWidth-4*l.Menu.menuBorder) + menuLayer.style.pixelLeft + l.Menu.submenuXOffset;<br />
     s.left = s.pixelLeft + &#8216;px&#8217;;<br />
    }<br />
   } else {<br />
    var top = parseInt(menuLayer.style.top) + l.Menu.submenuYOffset;<br />
    var left = 0;<br />
    if( l.Menu.vertical ) {<br />
     if( l.Menu.submenuRelativeToItem ) top += parseInt(l.style.top);<br />
     left = (parseInt(menuLayer.style.width)-4*l.Menu.menuBorder) + parseInt(menuLayer.style.left) + l.Menu.submenuXOffset;<br />
    } else {<br />
     top += parseInt(l.style.top);<br />
     if( l.Menu.submenuRelativeToItem ) left = parseInt(menuLayer.style.left) + parseInt(l.style.left) + parseInt(l.style.width) + (2*l.Menu.menuBorder) + l.Menu.submenuXOffset;<br />
     else left = (parseInt(menuLayer.style.width)-4*l.Menu.menuBorder) + parseInt(menuLayer.style.left) + l.Menu.submenuXOffset;<br />
    }<br />
    s.top = top + &#8216;px&#8217;;<br />
    s.left = left + &#8216;px&#8217;;<br />
   }<br />
   childMenu.style.visibility = &#8220;inherit&#8221;;<br />
  } else return;<br />
  window.activeMenus[window.activeMenus.length] = childMenu;<br />
 }<br />
}</p>
<p>function hideActiveMenus() {<br />
 if (!window.activeMenus) return;<br />
 for (var i=0; i &lt; window.activeMenus.length; i++) {<br />
  if (!activeMenus[i]) continue;<br />
  if (activeMenus[i].visibility &amp;&amp; activeMenus[i].Menu &amp;&amp; !window.mmIsOpera) {<br />
   activeMenus[i].visibility = &#8220;hidden&#8221;;<br />
   activeMenus[i].Menu.container.visibility = &#8220;hidden&#8221;;<br />
   activeMenus[i].Menu.container.clip.left = 0;<br />
  } else if (activeMenus[i].style) {<br />
   var s = activeMenus[i].style;<br />
   s.visibility = &#8220;hidden&#8221;;<br />
   s.left = &#8216;-200px&#8217;;<br />
   s.top = &#8216;-200px&#8217;;<br />
  }<br />
 }<br />
 if (window.ActiveMenuItem) hideMenu(false, false);<br />
 window.activeMenus.length = 0;<br />
}</p>
<p>function moveXbySlicePos (x, img) {<br />
 if (!document.layers) {<br />
  var onWindows = navigator.platform ? navigator.platform == &#8220;Win32&#8243; : false;<br />
  var macIE45 = document.all &amp;&amp; !onWindows &amp;&amp; getExplorerVersion() == 4.5;<br />
  var par = img;<br />
  var lastOffset = 0;<br />
  while(par){<br />
   if( par.leftMargin &amp;&amp; ! onWindows ) x += parseInt(par.leftMargin);<br />
   if( (par.offsetLeft != lastOffset) &amp;&amp; par.offsetLeft ) x += parseInt(par.offsetLeft);<br />
   if( par.offsetLeft != 0 ) lastOffset = par.offsetLeft;<br />
   par = macIE45 ? par.parentElement : par.offsetParent;<br />
  }<br />
 } else if (img.x) x += img.x;<br />
 return x;<br />
}</p>
<p>function moveYbySlicePos (y, img) {<br />
 if(!document.layers) {<br />
  var onWindows = navigator.platform ? navigator.platform == &#8220;Win32&#8243; : false;<br />
  var macIE45 = document.all &amp;&amp; !onWindows &amp;&amp; getExplorerVersion() == 4.5;<br />
  var par = img;<br />
  var lastOffset = 0;<br />
  while(par){<br />
   if( par.topMargin &amp;&amp; !onWindows ) y += parseInt(par.topMargin);<br />
   if( (par.offsetTop != lastOffset) &amp;&amp; par.offsetTop ) y += parseInt(par.offsetTop);<br />
   if( par.offsetTop != 0 ) lastOffset = par.offsetTop;<br />
   par = macIE45 ? par.parentElement : par.offsetParent;<br />
  }  <br />
 } else if (img.y &gt;= 0) y += img.y;<br />
 return y;<br />
}<br />
&lt;/script&gt;<br />
&lt;script language=&#8221;JavaScript1.2&#8243;&gt;mmLoadMenus();&lt;/script&gt;<br />
&lt;table width=&#8221;60%&#8221; border=&#8221;0&#8243; align=&#8221;center&#8221; cellspacing=&#8221;0&#8243;&gt;<br />
&lt;tr class=&#8221;top&#8221;&gt;<br />
  &lt;td&gt; &lt;div align=&#8221;center&#8221;&gt;&lt;font color=&#8221;#000000&#8243;&gt;<br />
&lt;a href=&#8221;#&#8221; name=&#8221;link2&#8243; id=&#8221;link1&#8243; onMouseOver=&#8221;MM_showMenu(window.mm_menu_1008171701_0,10,18,null,&#8217;link2&#8242;)&#8221; onMouseOut=&#8221;MM_startTimeout();&#8221;&gt;<br />
真空镀铝机&lt;/a&gt;<br />
      &lt;/font&gt;&lt;/div&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;/BODY&gt;<br />
&lt;/html&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/js-caidan/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>在火狐里面强制换行字符</title>
		<link>http://blog.1xi.net/javascript/ff-qiangzhi-huanhang</link>
		<comments>http://blog.1xi.net/javascript/ff-qiangzhi-huanhang#comments</comments>
		<pubDate>Mon, 23 Mar 2009 09:36:47 +0000</pubDate>
		<dc:creator>fangds</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=7524</guid>
		<description><![CDATA[火狐也不知道为什么，自己功能上，样式上面，都无法让其强制换行，这里用JS来实现火狐里面强制换行的方法。 &#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62; &#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62; &#60;head&#62; &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62; &#60;title&#62;firefox-break-word&#60;/title&#62; &#60;style type=&#34;text/css&#34;&#62; &#60;!--/*--&#62;&#60;![CDATA[/*&#62;&#60;!--*/ #break {border:1px solid #ccc;padding:.4em .8em;width:200px;word-wrap:break-word;word-break:break-all;} /*]]&#62;*/--&#62; &#60;/style&#62; &#60;/head&#62; &#60;body&#62; &#60;div id=&#34;break&#34;&#62; If there were less sympathy in the world, there would be less trouble in the world. ( O. Wilde ) &#60;/div&#62; &#60;script&#62; function [...]]]></description>
			<content:encoded><![CDATA[<p>火狐也不知道为什么，自己功能上，样式上面，都无法让其强制换行，这里用JS来实现火狐里面强制换行的方法。</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_GxXqoM">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
	&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
	&lt;title&gt;firefox-break-word&lt;/title&gt;
	&lt;style type=&quot;text/css&quot;&gt;
	&lt;!--/*--&gt;&lt;![CDATA[/*&gt;&lt;!--*/
	#break {border:1px solid #ccc;padding:.4em .8em;width:200px;word-wrap:break-word;word-break:break-all;}
	/*]]&gt;*/--&gt;
	&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;break&quot;&gt;
If there were less sympathy in the world, there would be less trouble in the world. ( O. Wilde )
&lt;/div&gt;
&lt;script&gt;
function toBreakWord(intLen){
var obj=document.getElementById(&quot;ff&quot;);
var strContent=obj.innerHTML;
var strTemp=&quot;&quot;;
while(strContent.length&gt;intLen){
strTemp+=strContent.substr(0,intLen)+&quot;&lt;br&gt;&quot;;
strContent=strContent.substr(intLen,strContent.length);
}
strTemp+=&quot;&lt;br&gt;&quot;+strContent;
obj.innerHTML=strTemp;
}
if(document.getElementById  &amp;&amp;  !document.all)  toBreakWord(37)
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_GxXqoM');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_GxXqoM');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/ff-qiangzhi-huanhang/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>三步骤完整实现ASP+JavaScript的日历选择器</title>
		<link>http://blog.1xi.net/asp/asp-javascript-rili-xuanze</link>
		<comments>http://blog.1xi.net/asp/asp-javascript-rili-xuanze#comments</comments>
		<pubDate>Thu, 04 Dec 2008 06:33:58 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-javascript-rili-xuanze</guid>
		<description><![CDATA[三步骤完整实现ASP+JavaScript的日历选择器，这个在很多的选择日期的输入框都可以用到。发出来，分享一下。首先：建立文件:CALENDAR.ASP &#60;%@ LANGUAGE = VBScript %&#62; &#60;% Option Explicit %&#62; &#60;% Function sFont(iSize,sFace,sColor,bScale)  Dim sOutputStr  sOutputStr = &#8220;&#60;FONT&#8221;  if sFace &#60;&#62; &#8220;&#8221; then    sOutputStr = sOutputStr &#38; &#8221; FACE=&#8217;&#8221; &#38; sFace &#38; &#8220;&#8216;&#8221;  else    sOutputStr = sOutputStr &#38; &#8221; FACE=&#8217;Helv&#8217;&#8221;  end if  if iSize = &#8220;&#8221; then   iSize = 1  end if  if bScale then [...]]]></description>
			<content:encoded><![CDATA[<p><span id="ArticleContent1_ArticleContent1_lblContent">三步骤完整实现ASP+JavaScript的日历选择器，这个在很多的选择日期的输入框都可以用到。发出来，分享一下。首先：建立文件:CALENDAR.ASP</p>
<blockquote><p>&lt;%@ LANGUAGE = VBScript %&gt;<br />
&lt;% Option Explicit %&gt;<br />
&lt;%<br />
Function sFont(iSize,sFace,sColor,bScale)<br />
 Dim sOutputStr<br />
 sOutputStr = &#8220;&lt;FONT&#8221;<br />
 if sFace &lt;&gt; &#8220;&#8221; then<br />
   sOutputStr = sOutputStr &amp; &#8221; FACE=&#8217;&#8221; &amp; sFace &amp; &#8220;&#8216;&#8221;<br />
 else<br />
   sOutputStr = sOutputStr &amp; &#8221; FACE=&#8217;Helv&#8217;&#8221;<br />
 end if</p>
<p> if iSize = &#8220;&#8221; then<br />
  iSize = 1<br />
 end if<br />
 if bScale then<br />
  iSize = cInt(iSize * 1)<br />
 end if<br />
 sOutputStr = sOutputStr &amp; &#8221; SIZE=&#8221; &amp; iSize<br />
 if sColor &lt;&gt; &#8220;&#8221; then<br />
   sOutputStr = sOutputStr &amp; &#8221; COLOR=&#8221; &amp; sColor<br />
 end if<br />
 <br />
 sOutputStr = sOutputStr &amp; &#8220;&gt;&#8221;</p>
<p> sFont = sOutputStr<br />
End Function<br />
On Error Resume Next<br />
Dim datecntrl, Dy, Mo, Yr, nextmonth, startwith, thisMo, thisYr, thisDate,the_type<br />
Dim prevMonthLastDate, currMonthLastDate, i, j, lastnum, AnyDate,default_value</p>
<p>datecntrl= Request(&#8220;object&#8221;)<br />
defaultvalue=request(&#8220;value&#8221;)<br />
the_type=request(&#8220;type&#8221;)<br />
if the_type&lt;&gt;&#8221;datetime&#8221; then<br />
 the_type=&#8221;date&#8221;<br />
end if</p>
<p>if defaultvalue=&#8221;" then<br />
 Yr = year(date)<br />
 Mo = month(date)<br />
 Dy = day(date)<br />
else<br />
    dim pos1<br />
    dim deal_value<br />
    dealvalue=default_value<br />
    pos1=instr(deal_value,&#8221;-&#8221;)<br />
 Yr = cint(mid(deal_value,1,pos1-1))<br />
 dealvalue=mid(deal_value,pos1+1)<br />
 pos1=instr(deal_value,&#8221;-&#8221;)<br />
 Mo = cint(mid(deal_value,1,pos1-1))<br />
 if trim(the_type)=&#8221;date&#8221; then<br />
  Dy = cint(mid(deal_value,pos1+1))<br />
 else<br />
     dim H,M,S<br />
  dealvalue=mid(deal_value,pos1+1)<br />
  pos1=instr(deal_value,&#8221; &#8220;)<br />
     Dy=cint(mid(deal_value,1,pos1-1))<br />
  dealvalue=mid(deal_value,pos1+1)<br />
  pos1=instr(deal_value,&#8221;:&#8221;)<br />
     H=cint(mid(deal_value,1,pos1-1))<br />
  dealvalue=mid(deal_value,pos1+1)<br />
  pos1=instr(deal_value,&#8221;:&#8221;)<br />
     M=cint(mid(deal_value,1,pos1-1))<br />
    S=cint(mid(deal_value,pos1+1))<br />
 end if <br />
end if</p>
<p>nextmonth = false<br />
%&gt;<br />
&lt;HTML&gt;<br />
 &lt;HEAD&gt;<br />
  &lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=gb2312&#8243;&gt;<br />
  &lt;meta name=&#8221;GENERATOR&#8221; content=&#8221;Microsoft FrontPage 4.0&#8243;&gt;<br />
  &lt;meta name=&#8221;ProgId&#8221; content=&#8221;FrontPage.Editor.Document&#8221;&gt;<br />
  &lt;style type=&#8221;text/css&#8221;&gt;<br />
 A<br />
  { FONT-SIZE: 13px; COLOR: #000000;TEXT-DECORATION: none }<br />
 A:hover<br />
 {COLOR: #ff0000;<br />
 }<br />
  &lt;/style&gt;<br />
  &lt;TITLE&gt;日历&lt;/TITLE&gt;<br />
  &lt;SCRIPT LANGUAGE=&#8221;JavaScript&#8221;&gt;<br />
 //检查字符串是否为日期，返回值：false、true<br />
function f_chkDate(datestr)<br />
{<br />
 var lthdatestr<br />
 if (datestr != &#8220;&#8221;)<br />
  lthdatestr= datestr.length ;<br />
 else<br />
  lthdatestr=0;<br />
  <br />
 var tmpy=&#8221;";<br />
 var tmpm=&#8221;";<br />
 var tmpd=&#8221;";<br />
 //var datestr;<br />
 var status;<br />
 status=0;<br />
 if ( lthdatestr== 0)<br />
  return false;</p>
<p>    if(lthdatestr&gt;10)<br />
       return false;<br />
 <br />
 for (i=0;i &lt; lthdatestr;i++)<br />
 { if (datestr.charAt(i)== &#8216;-&#8217;)<br />
  {<br />
   status++;<br />
  }<br />
  if (status&gt;2)<br />
  {<br />
   //alert(&#8220;Invalid format of date!&#8221;);<br />
   return false;<br />
  }<br />
  if ((status==0) &amp;&amp; (datestr.charAt(i)!=&#8217;-'))<br />
  {<br />
   tmpy=tmpy+datestr.charAt(i)<br />
  }<br />
  if ((status==1) &amp;&amp; (datestr.charAt(i)!=&#8217;-'))<br />
  {<br />
   tmpm=tmpm+datestr.charAt(i)<br />
  }<br />
  if ((status==2) &amp;&amp; (datestr.charAt(i)!=&#8217;-'))<br />
  {<br />
   tmpd=tmpd+datestr.charAt(i)<br />
  }</p>
<p> }<br />
 year=new String (tmpy);<br />
 month=new String (tmpm);<br />
 day=new String (tmpd);<br />
 <br />
 //tempdate= new String (year+month+day);<br />
 //alert(tempdate);<br />
 if ((tmpy.length!=4) || (tmpm.length&gt;2) || (tmpd.length&gt;2))<br />
 {<br />
  //alert(&#8220;Invalid format of date!&#8221;);<br />
  return false;<br />
 }<br />
 if (!((1&lt;=month) &amp;&amp; (12&gt;=month) &amp;&amp; (31&gt;=day) &amp;&amp; (1&lt;=day)) )<br />
 {<br />
     //alert (&#8220;Invalid month or day!&#8221;);<br />
  return false;<br />
 }<br />
 if (!((year % 4)==0) &amp;&amp; (month==2) &amp;&amp; (day==29))<br />
 {<br />
  //alert (&#8220;This is not a leap year!&#8221;);<br />
  return false;<br />
 }<br />
 if ((month&lt;=7) &amp;&amp; ((month % 2)==0) &amp;&amp; (day&gt;=31))<br />
 {<br />
  //alert (&#8220;This month is a small month!&#8221;);<br />
  return false;<br />
 <br />
 }<br />
 if ((month&gt;=8) &amp;&amp; ((month % 2)==1) &amp;&amp; (day&gt;=31))<br />
 {<br />
  //alert (&#8220;This month is a small month!&#8221;);<br />
  return false;<br />
 }<br />
 if ((month==2) &amp;&amp; (day==30))<br />
 {<br />
  //alert(&#8220;The Febryary never has this day!&#8221;);<br />
  return false;<br />
 }<br />
 <br />
 return true;<br />
}<br />
  function right(str,number)<br />
  {<br />
   return str.substr(str.length &#8211; number,str.length);<br />
  }<br />
  function setDate(Dy,Mo,Yr,vBool)<br />
  { <br />
            if (vBool)<br />
               {<br />
               if (Mo&lt;10)  Mo=&#8221;0&#8243;+Mo;<br />
               if (Dy&lt;10)  Dy=&#8221;0&#8243;+Dy;<br />
   <br />
   &lt;%if the_type=&#8221;datetime&#8221; then%&gt;<br />
    top.opener.&lt;%= datecntrl %&gt;.value =Yr+&#8221;-&#8221;+Mo+&#8221;-&#8221;+Dy+&#8221; &#8220;+userform.hour.value+&#8221;:&#8221;+userform.minute.value+&#8221;:&#8221;+userform.second.value;<br />
   &lt;%else%&gt;<br />
    top.opener.&lt;%= datecntrl %&gt;.value =Yr+&#8221;-&#8221;+Mo+&#8221;-&#8221;+Dy;<br />
   &lt;%end if%&gt;<br />
   top.window.close();<br />
              <br />
               }<br />
  <br />
      &lt;%if the_type=&#8221;datetime&#8221; then%&gt;<br />
       self.location.href=&#8221;calendar.asp?type=&lt;%=the_type%&gt;&amp;object=&lt;%= datecntrl %&gt;&amp;value=&#8221;+Yr+&#8221;-&#8221;+right((&#8220;0&#8243;+Mo),2)+&#8221;-&#8221;+right((&#8220;0&#8243;+Dy),2)+&#8221; &#8220;+userform.hour.value+&#8221;:&#8221;+userform.minute.value+&#8221;:&#8221;+userform.second.value;<br />
   &lt;%else%&gt;<br />
    self.location.href=&#8221;calendar.asp?type=&lt;%=the_type%&gt;&amp;object=&lt;%= datecntrl %&gt;&amp;value=&#8221;+Yr+&#8221;-&#8221;+right((&#8220;0&#8243;+Mo),2)+&#8221;-&#8221;+right((&#8220;0&#8243;+Dy),2);<br />
   &lt;%end if%&gt;<br />
  }<br />
  <br />
  function saveDate()<br />
  {<br />
   &lt;%if the_type=&#8221;datetime&#8221; then%&gt;<br />
    top.opener.&lt;%= datecntrl %&gt;.value =&#8221;&lt;%= Yr &amp; &#8220;-&#8221; &amp; right(&#8220;0&#8243;+cstr(Mo),2) &amp; &#8220;-&#8221; &amp; right(&#8220;0&#8243;+cstr(Dy),2) %&gt;&#8221;+&#8221; &#8220;+userform.hour.value+&#8221;:&#8221;+userform.minute.value+&#8221;:&#8221;+userform.second.value;<br />
   &lt;%else%&gt;<br />
    top.opener.&lt;%= datecntrl %&gt;.value =&#8221;&lt;%= Yr &amp; &#8220;-&#8221; &amp; right(&#8220;0&#8243;+cstr(Mo),2) &amp; &#8220;-&#8221; &amp; right(&#8220;0&#8243;+cstr(Dy),2) %&gt;&#8221;;<br />
   &lt;%end if%&gt;<br />
   top.window.close();<br />
  }<br />
  <br />
  &lt;/SCRIPT&gt;<br />
 &lt;/HEAD&gt;<br />
 &lt;BODY onload=&#8221;javascript:window.focus()&#8221; bgcolor=&#8221;#CCFFFF&#8221;&gt;<br />
  &lt;FORM NAME=&#8221;userform&#8221;&gt;<br />
   &lt;TABLE WIDTH=&#8221;100%&#8221; CELLPADDING=&#8221;2&#8243; CELLSPACING=&#8221;0&#8243;&gt;<br />
    &lt;TR&gt;<br />
     &lt;TD ALIGN=&#8221;left&#8221;&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;",True) %&gt;<br />
      &lt;%= writeYears(Yr) %&gt;<br />
     &lt;/TD&gt;<br />
     &lt;TD ALIGN=&#8221;right&#8221;&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;",True) %&gt;<br />
      &lt;%= writeMonths(Mo) %&gt;<br />
     &lt;/TD&gt;<br />
    &lt;/TR&gt;<br />
   &lt;/TABLE&gt;<br />
   &lt;TABLE WIDTH=&#8221;100%&#8221; BORDER=&#8221;1&#8243; BORDERCOLOR=&#8221;Silver&#8221; CELLPADDING=&#8221;2&#8243; CELLSPACING=&#8221;0&#8243;&gt;<br />
    &lt;%</p>
<p> function nextDate(startwith, maxdays)<br />
  startwith = startwith + 1<br />
  if startwith &gt; maxdays then<br />
   startwith = 1<br />
  end if<br />
  <br />
  nextDate = startwith<br />
 end function<br />
 <br />
 function GetLastDay(Mo,Yr)<br />
    if Mo=2 then<br />
   if (Yr Mod 4)=0 then<br />
       GetLastDay = 29<br />
   else<br />
    GetLastDay = 28<br />
   end if<br />
  elseif ((Mo = 0) OR (Mo = 1) OR (Mo = 3) OR (Mo = 5) OR (Mo = 7) OR (Mo = 8) OR (Mo = 10) OR (Mo = 12)) then<br />
      GetLastDay =  31<br />
  else<br />
      GetLastDay =  30<br />
  end if<br />
   end function<br />
 <br />
 function GetFirstDayOffset(Mo,Yr)<br />
  GetFirstDayOffset = weekday(Mo &amp; &#8220;/01/&#8221; &amp; Yr)-1<br />
   end function<br />
 <br />
 function writeMonths(selMo)<br />
  dim i, selstr<br />
  selstr = &#8220;&lt;SELECT NAME=&#8217;Months&#8217; onChange=&#8217;setDate(&#8221; &amp; Dy &amp; &#8220;,this.selectedIndex+1,&#8221; &amp; Yr &amp; &#8220;,false);&#8217;&gt;&#8221;<br />
  for i=1 to 12<br />
   if selMo = i then<br />
    selstr = selstr &amp; &#8220;&lt;OPTION SELECTED&gt;&#8221; &amp; MonthName(i)   <br />
   else<br />
    selstr = selstr &amp; &#8220;&lt;OPTION&gt;&#8221; &amp; MonthName(i)<br />
   end if<br />
  next                <br />
  selstr = selstr &amp; &#8220;&lt;/SELECT&gt;&#8221;<br />
  writeMonths = selstr<br />
 end function<br />
 <br />
 function writeYears(selYear)<br />
  dim i, selstr<br />
  selstr = &#8220;&lt;SELECT NAME=&#8217;Years&#8217; onChange=&#8217;setDate(&#8221; &amp; Dy &amp; &#8220;,&#8221; &amp; Mo &amp; &#8220;,this.options[this.selectedIndex].value,false);&#8217;&gt;&#8221;<br />
  for i=1900 to 2100<br />
   if selYear = i then<br />
    selstr = selstr &amp; &#8220;&lt;OPTION SELECTED VALUE=&#8221; &amp; i &amp; &#8220;&gt;&#8221; &amp; i &amp; &#8220;年&#8221;   <br />
   else<br />
    selstr = selstr &amp; &#8220;&lt;OPTION VALUE=&#8221; &amp; i &amp; &#8220;&gt;&#8221; &amp; i &amp; &#8220;年&#8221;<br />
   end if<br />
  next                <br />
  selstr = selstr &amp; &#8220;&lt;/SELECT&gt;&#8221;<br />
  writeYears = selstr  <br />
 end function</p>
<p> prevMonthLastDate=GetLastDay((Mo-1),Yr)  <br />
 currMonthLastDate=GetLastDay(Mo,Yr) <br />
 startwith=(prevMonthLastDate-GetFirstDayOffset(Mo, Yr))</p>
<p>%&gt;<br />
    &lt;TR&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BGCOLOR=&#8221;Gray&#8221; BORDERCOLOR=&#8221;Silver&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#000000&#8243;&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;#FFFFFF&#8221;,True) %&gt;<br />
      &lt;B&gt;日&lt;/B&gt;<br />
     &lt;/TD&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BGCOLOR=&#8221;Gray&#8221; BORDERCOLOR=&#8221;Silver&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#000000&#8243;&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;#FFFFFF&#8221;,True) %&gt;<br />
      &lt;B&gt;一&lt;/B&gt;<br />
     &lt;/TD&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BGCOLOR=&#8221;Gray&#8221; BORDERCOLOR=&#8221;Silver&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#000000&#8243;&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;#FFFFFF&#8221;,True) %&gt;<br />
      &lt;B&gt;二&lt;/B&gt;<br />
     &lt;/TD&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BGCOLOR=&#8221;Gray&#8221; BORDERCOLOR=&#8221;Silver&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#000000&#8243;&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;#FFFFFF&#8221;,True) %&gt;<br />
      &lt;B&gt;三&lt;/B&gt;<br />
     &lt;/TD&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BGCOLOR=&#8221;Gray&#8221; BORDERCOLOR=&#8221;Silver&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#000000&#8243;&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;#FFFFFF&#8221;,True) %&gt;<br />
      &lt;B&gt;四&lt;/B&gt;<br />
     &lt;/TD&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BGCOLOR=&#8221;Gray&#8221; BORDERCOLOR=&#8221;Silver&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#000000&#8243;&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;#FFFFFF&#8221;,True) %&gt;<br />
      &lt;B&gt;五&lt;/B&gt;<br />
     &lt;/TD&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BGCOLOR=&#8221;Gray&#8221; BORDERCOLOR=&#8221;Silver&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#000000&#8243; style=&#8221;font-family: Helv,Arial; font-size: 10pt;&#8221;&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;#FFFFFF&#8221;,True) %&gt;<br />
      &lt;B&gt;六&lt;/B&gt;<br />
     &lt;/TD&gt;<br />
    &lt;/TR&gt;<br />
    &lt;% For j = 1 to 6 %&gt;<br />
    &lt;TR&gt;<br />
     &lt;% For i = 1 to 7 %&gt;<br />
     &lt;% if j = 1 then %&gt;<br />
     &lt;% startwith = nextDate(startwith, prevMonthLastDate) %&gt;<br />
     &lt;% if startwith = Dy and startwith &lt; 7 then %&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BGCOLOR=&#8221;#AAAAAA&#8221; BORDERCOLOR=&#8221;#AAAAAA&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#AAAAAA&#8221;&gt;<br />
      &lt;% else %&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BORDERCOLOR=&#8221;Silver&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#000000&#8243;&gt;<br />
      &lt;% end if %&gt;<br />
      &lt;% thisYr = Yr %&gt;<br />
      &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;",True) %&gt;<br />
      &lt;% if startwith &lt; 7 then %&gt;<br />
      &lt;B&gt;<br />
       &lt;% thisMo = Mo %&gt;<br />
       &lt;% else %&gt;<br />
       &lt;% thisMo = Mo &#8211; 1 %&gt;<br />
       &lt;% if thisMo = 0 then %&gt;<br />
       &lt;% thisMo = 12 %&gt;<br />
       &lt;% thisYr = Yr-1 %&gt;<br />
       &lt;% end if %&gt;<br />
       &lt;% end if %&gt;<br />
       &lt;A HREF=&#8221;javascript:setDate( &lt;%= startwith %&gt;, &lt;%= thisMo %&gt;,&lt;%= thisYr %&gt;,false);&#8221; &gt;<br />
        &lt;% response.write startwith %&gt;<br />
       &lt;/A&gt;&lt;/B&gt;<br />
     &lt;/TD&gt;<br />
     &lt;% else %&gt;<br />
     &lt;% lastnum = startwith %&gt;<br />
     &lt;% startwith = nextDate(startwith, currMonthLastDate) %&gt;<br />
     &lt;% if lastnum &gt; startwith then%&gt;<br />
     &lt;% nextmonth = true %&gt;<br />
     &lt;% end if %&gt;<br />
     &lt;% if startwith = Dy and not nextmonth then %&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BGCOLOR=&#8221;#AAAAAA&#8221; BORDERCOLOR=&#8221;#AAAAAA&#8221; BORDERCOLORDARK=&#8221;#AAAAAA&#8221; BORDERCOLORLIGHT=&#8221;#FFFFFF&#8221;&gt;<br />
      &lt;% else %&gt;<br />
     &lt;TD WIDTH=&#8221;20&#8243; HEIGHT=&#8221;20&#8243; BORDERCOLOR=&#8221;Silver&#8221; BORDERCOLORDARK=&#8221;#FFFFFF&#8221; BORDERCOLORLIGHT=&#8221;#000000&#8243;&gt;<br />
      &lt;% end if %&gt;<br />
      &lt;% thisYr = Yr %&gt;<br />
      &lt;% if not nextmonth then %&gt;<br />
      &lt;B&gt;<br />
       &lt;% thisMo = Mo %&gt;<br />
       &lt;% else %&gt;<br />
       &lt;% thisMo = Mo + 1 %&gt;<br />
       &lt;% if thisMo = 13 then %&gt;<br />
       &lt;% thisMo = 1 %&gt;<br />
       &lt;% thisYr = Yr+1 %&gt;<br />
       &lt;% end if %&gt;<br />
       &lt;% end if %&gt;<br />
       &lt;%= sFont(&#8220;2&#8243;,&#8221;宋体&#8221;,&#8221;",True) %&gt;<br />
       &lt;A HREF=&#8221;javascript:setDate(&lt;%= startwith %&gt;, &lt;%= thisMo %&gt;, &lt;%= thisYr %&gt;,false);&#8221; &gt;<br />
        &lt;% response.write startwith %&gt;<br />
       &lt;/A&gt;&lt;/B&gt;<br />
     &lt;/TD&gt;<br />
     &lt;% end if %&gt;<br />
     &lt;% Next %&gt;<br />
    &lt;/TR&gt;<br />
    &lt;% Next %&gt;<br />
   &lt;/TABLE&gt;<br />
   &lt;table&gt;<br />
    &lt;tr&gt;<br />
     &lt;td&gt;<br />
      &lt;%if the_type=&#8221;datetime&#8221; then%&gt;<br />
      &lt;select size=&#8221;1&#8243; name=&#8221;hour&#8221;&gt;<br />
       &lt;%<br />
  for i=0 to 23<br />
    if (i=H) then<br />
       response.write &#8220;&lt;option selected value=&#8217;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;&#8216;&gt;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;时&#8221;+&#8221;&lt;/option&gt;&#8221;<br />
    else<br />
       response.write &#8220;&lt;option value=&#8217;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;&#8216;&gt;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;时&#8221;+&#8221;&lt;/option&gt;&#8221;<br />
    end if<br />
  next<br />
  %&gt;<br />
      &lt;/select&gt;<br />
      &lt;select size=&#8221;1&#8243; name=&#8221;minute&#8221;&gt;<br />
       &lt;%<br />
  for i=0 to 59<br />
    if (i=M) then<br />
       response.write &#8220;&lt;option selected value=&#8217;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;&#8216;&gt;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;分&#8221;+&#8221;&lt;/option&gt;&#8221;<br />
    else  <br />
       response.write &#8220;&lt;option value=&#8217;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;&#8216;&gt;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;分&#8221;+&#8221;&lt;/option&gt;&#8221;<br />
    end if  <br />
  next<br />
  %&gt;<br />
      &lt;/select&gt;<br />
      &lt;select size=&#8221;1&#8243; name=&#8221;second&#8221;&gt;<br />
       &lt;%<br />
  for i=0 to 59<br />
    if (i=S) then<br />
       response.write &#8220;&lt;option selected value=&#8217;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;&#8216;&gt;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;秒&#8221;+&#8221;&lt;/option&gt;&#8221;<br />
    else<br />
       response.write &#8220;&lt;option value=&#8217;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;&#8216;&gt;&#8221;+right(&#8220;0&#8243;+cstr(i),2)+&#8221;秒&#8221;+&#8221;&lt;/option&gt;&#8221;<br />
    end if      <br />
  next<br />
  %&gt;<br />
      &lt;/select&gt;<br />
      &lt;%end if%&gt;<br />
     &lt;/td&gt;<br />
    &lt;/tr&gt;<br />
   &lt;/table&gt;<br />
   &lt;CENTER&gt;<br />
    &lt;INPUT TYPE=&#8221;button&#8221; id=&#8221;ok&#8221; VALUE=&#8221; 确定 &#8221; onClick=&#8221;saveDate();&#8221;&gt;&amp;nbsp;&amp;nbsp; &lt;INPUT TYPE=&#8221;button&#8221; VALUE=&#8221; 取消 &#8221; onClick=&#8221;top.window.close();&#8221;&gt;<br />
   &lt;/CENTER&gt;<br />
  &lt;/FORM&gt;<br />
  &lt;script language=&#8221;javascript&#8221;&gt;<br />
var strDate = &lt;%=Yr%&gt;+&#8221;-&#8221;+right((&#8220;0&#8243;+&lt;%=Mo%&gt;),2)+&#8221;-&#8221;+right((&#8220;0&#8243;+&lt;%=Dy%&gt;),2);<br />
if (f_chkDate(strDate))<br />
 document.all.ok.disabled = false;<br />
else<br />
 document.all.ok.disabled = true;<br />
  &lt;/script&gt;<br />
 &lt;/BODY&gt;<br />
&lt;/HTML&gt;</p></blockquote>
<p> </p>
<p>其次:建立文件:JavaScriptdate.js</p>
<blockquote><p>
function f_get_date(object_name){<br />
 var objectvalue=&#8221;";<br />
 eval(&#8220;objectvalue=&#8221;+object_name+&#8221;.value&#8221;);<br />
if(!f_chkDate(object_value)){<br />
  var v_today=new Date();<br />
  objectvalue=v_today.getYear()+&#8221;-&#8221;+(v_today.getMonth()+1)+&#8221;-&#8221;+(v_today.getDate());<br />
 }<br />
open(&#8216;calendar.asp?type=date&amp;object=&#8217;+object_name+&#8217;&amp;value=&#8217;+object_value,&#8217;calendar&#8217;,'resizable=yes,toolbar=no,scrollbars=no,directories=no,menubar=no,width=180,height=240&#8242;);<br />
}<br />
//获取日历时间函数<br />
function f_get_datetime(object_name){<br />
 var objectvalue=&#8221;";<br />
 eval(&#8220;objectvalue=&#8221;+object_name+&#8221;.value&#8221;);<br />
 open(&#8216;calendar.asp?type=datetime&amp;object=&#8217;+object_name+&#8217;&amp;value=&#8217;+object_value,&#8217;calendar&#8217;,'resizable=yes,toolbar=no,scrollbars=no,directories=no,menubar=no,width=210,height=270&#8242;);<br />
}<br />
//检查字符串是否为日期，返回值：false、true<br />
function f_chkDate(datestr)<br />
{<br />
 var lthdatestr<br />
 if (datestr != &#8220;&#8221;)<br />
  lthdatestr= datestr.length ;<br />
 else<br />
  lthdatestr=0;<br />
  <br />
 var tmpy=&#8221;";<br />
 var tmpm=&#8221;";<br />
 var tmpd=&#8221;";<br />
 //var datestr;<br />
 var status;<br />
 status=0;<br />
 if ( lthdatestr== 0)<br />
  return false;</p>
<p>    if(lthdatestr&gt;10)<br />
       return false;<br />
 <br />
 for (i=0;i &lt; lthdatestr;i++)<br />
 { if (datestr.charAt(i)== &#8216;-&#8217;)<br />
  {<br />
   status++;<br />
  }<br />
  if (status&gt;2)<br />
  {<br />
   //alert(&#8220;Invalid format of date!&#8221;);<br />
   return false;<br />
  }<br />
  if ((status==0) &amp;&amp; (datestr.charAt(i)!=&#8217;-'))<br />
  {<br />
   tmpy=tmpy+datestr.charAt(i)<br />
  }<br />
  if ((status==1) &amp;&amp; (datestr.charAt(i)!=&#8217;-'))<br />
  {<br />
   tmpm=tmpm+datestr.charAt(i)<br />
  }<br />
  if ((status==2) &amp;&amp; (datestr.charAt(i)!=&#8217;-'))<br />
  {<br />
   tmpd=tmpd+datestr.charAt(i)<br />
  }</p>
<p> }<br />
 year=new String (tmpy);<br />
 month=new String (tmpm);<br />
 day=new String (tmpd);<br />
 <br />
 //tempdate= new String (year+month+day);<br />
 //alert(tempdate);<br />
 if ((tmpy.length!=4) || (tmpm.length&gt;2) || (tmpd.length&gt;2))<br />
 {<br />
  //alert(&#8220;Invalid format of date!&#8221;);<br />
  return false;<br />
 }<br />
 if (!((1&lt;=month) &amp;&amp; (12&gt;=month) &amp;&amp; (31&gt;=day) &amp;&amp; (1&lt;=day)) )<br />
 {<br />
     //alert (&#8220;Invalid month or day!&#8221;);<br />
  return false;<br />
 }<br />
 if (!((year % 4)==0) &amp;&amp; (month==2) &amp;&amp; (day==29))<br />
 {<br />
  //alert (&#8220;This is not a leap year!&#8221;);<br />
  return false;<br />
 }<br />
 if ((month&lt;=7) &amp;&amp; ((month % 2)==0) &amp;&amp; (day&gt;=31))<br />
 {<br />
  //alert (&#8220;This month is a small month!&#8221;);<br />
  return false;<br />
 <br />
 }<br />
 if ((month&gt;=8) &amp;&amp; ((month % 2)==1) &amp;&amp; (day&gt;=31))<br />
 {<br />
  //alert (&#8220;This month is a small month!&#8221;);<br />
  return false;<br />
 }<br />
 if ((month==2) &amp;&amp; (day==30))<br />
 {<br />
  //alert(&#8220;The Febryary never has this day!&#8221;);<br />
  return false;<br />
 }<br />
 <br />
 return true;<br />
}</p></blockquote>
<p>最后:说一下在页面中如何调用</p>
<p>示例:(使用页)</p>
<p>        &lt;script language=&#8221;javascript&#8221; src=&#8221;JavaScriptdate.js&#8221;&gt;&lt;/script&gt;</p>
<p>        &lt;input class=&#8221;input&#8221; style=&#8221;cursor:hand&#8221;; name=&#8221;myTime&#8221; type=&#8221;text&#8221; id=&#8221;myTime&#8221; size=&#8221;16&#8243; value=&#8221;" readonly=&#8221;true&#8221;&gt;</p>
<p>    1.获取日期:<br />
        &lt;script language=&#8221;javascript&#8221; event=&#8221;onclick&#8221; for=&#8221;myTime&#8221;&gt;<br />
                f_get_date(&#8220;document.all.myTime&#8221;);<br />
        &lt;/script&gt;<br />
       <br />
     2.获取日期和时间<br />
         &lt;script language=&#8221;javascript&#8221; event=&#8221;onclick&#8221; for=&#8221;myTime&#8221;&gt;<br />
                f_get_datetime(&#8220;document.all.myTime&#8221;);<br />
         &lt;/script&gt;</p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-javascript-rili-xuanze/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript隐藏链接真实地址的方法</title>
		<link>http://blog.1xi.net/javascript/yingchang-lianjie-dizhi</link>
		<comments>http://blog.1xi.net/javascript/yingchang-lianjie-dizhi#comments</comments>
		<pubDate>Thu, 27 Nov 2008 10:29:35 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/javascript/yingchang-lianjie-dizhi</guid>
		<description><![CDATA[一个简单的而有实用的用Javascript隐藏超级链接真实地址，方法如下： &#60;a href=&#8221;#&#8221; onclick=&#8221;javascript:window.open(&#8216;a.htm&#8217;)&#8221;&#62;打开窗口&#60;/a&#62; 当鼠标打向打开窗口时，出现的链接信息是#，而不是a.htm，从而达到隐藏真实的超级链接地址的效果！]]></description>
			<content:encoded><![CDATA[<p>一个简单的而有实用的用Javascript隐藏超级链接真实地址，方法如下：</p>
<blockquote><p>
&lt;a href=&#8221;#&#8221; onclick=&#8221;javascript:window.open(&#8216;a.htm&#8217;)&#8221;&gt;打开窗口&lt;/a&gt;</p></blockquote>
<p>当鼠标打向打开窗口时，出现的链接信息是#，而不是a.htm，从而达到隐藏真实的超级链接地址的效果！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/yingchang-lianjie-dizhi/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用JavaScript避免表单重复提交</title>
		<link>http://blog.1xi.net/javascript/bimian-biaodan-chongfu-tijiao</link>
		<comments>http://blog.1xi.net/javascript/bimian-biaodan-chongfu-tijiao#comments</comments>
		<pubDate>Wed, 26 Nov 2008 06:41:05 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[表单]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/javascript/bimian-biaodan-chongfu-tijiao</guid>
		<description><![CDATA[论坛里有很多无恶意的重复帖子，这里介绍一个办法，用JavaScript避免重复提交，下面是部分源码： &#60;script Language=&#8217;JavaScript&#8217;&#62; function formsubmit() { Today = new Date(); var NowHour = Today.getHours(); var NowMinute = Today.getMinutes(); var NowSecond = Today.getSeconds(); var mysec = (NowHour*3600)+(NowMinute*60)+NowSecond; if((mysec-document.formsubmitf.mypretime.value)&#62;600) //600只是一个时间值，就是5分钟内禁止重复提交，值随你高兴设 { document.formsubmitf.mypretime.value=mysec; } else { alert(&#8216; 按一次就够了，请勿重复提交！请耐心等待！谢谢合作！&#8217;); return false; } document.forms.formsubmitf.submit(); } &#60;/script&#62; &#60;/HEAD&#62; &#60;BODY BGCOLOR=&#8221;#FFFFFF&#8221;&#62; &#60;form name=formsubmitf id =&#8221;the&#8221; method=&#8221;post&#8221; action=&#8221;XXX.asp&#8221;&#62; &#60;input type=hidden name=&#8217;mypretime&#8217; value=&#8217;0&#8242;&#62; //这句不能少，用隐含变量传递一个时间初值 [...]]]></description>
			<content:encoded><![CDATA[<p>论坛里有很多无恶意的重复帖子，这里介绍一个办法，用JavaScript避免重复提交，下面是部分源码：</p>
<blockquote><p>
&lt;script Language=&#8217;JavaScript&#8217;&gt;<br />
function formsubmit() {<br />
Today = new Date();<br />
var NowHour = Today.getHours();<br />
var NowMinute = Today.getMinutes();<br />
var NowSecond = Today.getSeconds();<br />
var mysec = (NowHour*3600)+(NowMinute*60)+NowSecond;<br />
if((mysec-document.formsubmitf.mypretime.value)&gt;600)<br />
//600只是一个时间值，就是5分钟内禁止重复提交，值随你高兴设<br />
{<br />
document.formsubmitf.mypretime.value=mysec;<br />
}<br />
else<br />
{<br />
alert(&#8216; 按一次就够了，请勿重复提交！请耐心等待！谢谢合作！&#8217;);<br />
return false;<br />
}<br />
document.forms.formsubmitf.submit();<br />
}<br />
&lt;/script&gt;</p>
<p>&lt;/HEAD&gt;</p>
<p>&lt;BODY BGCOLOR=&#8221;#FFFFFF&#8221;&gt;<br />
&lt;form name=formsubmitf id =&#8221;the&#8221; method=&#8221;post&#8221; action=&#8221;XXX.asp&#8221;&gt;<br />
&lt;input type=hidden name=&#8217;mypretime&#8217; value=&#8217;0&#8242;&gt; //这句不能少，用隐含变量传递一个时间初值</p>
<p>//这里是你要提交的内容</p>
<p>&lt;input type=&#8221;button&#8221; value=&#8221;写好了&#8221; name=&#8221;button1&#8243; class=&#8221;4round&#8221; onclick=&#8217;formsubmit()&#8217;&gt;&amp;nbsp;&lt;font class=&#8221;red&#8221;&gt;(请按一次，耐心等待！)&lt;/font&gt;&amp;nbsp;&lt;input type=&#8221;reset&#8221; value=&#8221;重 写&#8221; name=&#8221;button2&#8243; class=&#8221;4round&#8221;&gt;<br />
&lt;/form&gt;</p></blockquote>
<p>用了这个代码，论坛的重复帖子明显减少，不过有个缺点，就是刷新一次，检测就不起作用，好处就是利用JS检测，不需要额外的权限支持，至于效果如何，用不用就随你们了，（最好前端跟后端都加上检测）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/bimian-biaodan-chongfu-tijiao/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>根据鼠标的事件，来控制图片大小的效果</title>
		<link>http://blog.1xi.net/javascript/shubiaoshijian-he-tupiandaxiao</link>
		<comments>http://blog.1xi.net/javascript/shubiaoshijian-he-tupiandaxiao#comments</comments>
		<pubDate>Mon, 24 Nov 2008 09:41:28 +0000</pubDate>
		<dc:creator>fangds</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[图片]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=7311</guid>
		<description><![CDATA[发现了一个通过根据鼠标的事件，来控制图片大小的效果，觉得挺有意思，分享一下。 关于透明效果，注意一下： 火狐：this.style.MozOpacity=1; IE：this.filters.alpha.opacity=100; 以下是实现代码，可以直接运行试试看。 &#60;p style=&#34;margin:5px 0 10px 0&#34;&#62;&#60;a style=&#34;&#34; href=&#34;http://www.1xi.net/&#34; target=&#34;_blank&#34;&#62;&#60;img onmouseover=&#34;try{this.style.height='100px';this.style.MozOpacity=1;this.filters.alpha.opacity=100;}catch(e){};&#34; onmouseout=&#34;try{this.style.height='40px';this.style.MozOpacity=0.8;this.filters.alpha.opacity=80;}catch(e){};&#34; style=&#34;-moz-opacity:0.8; filter:alpha(opacity=80);background:url('http://blog.1xi.net/wp-content/themes/church_10/images/logo.png') 0 bottom;height:40px;&#34; src=&#34;http://blog.1xi.net/images/tm.png&#34; alt=&#34;Fds's blog&#34; title=&#34;Fds's blog&#34;/ width=&#34;350&#34;&#62;&#60;/a&#62;&#60;br/&#62;&#60;/p&#62; 提示：你可以先修改部分代码再运行。]]></description>
			<content:encoded><![CDATA[<p>发现了一个通过根据鼠标的事件，来控制图片大小的效果，觉得挺有意思，分享一下。<br />
关于透明效果，注意一下：<br />
火狐：this.style.MozOpacity=1;<br />
IE：this.filters.alpha.opacity=100;<br />
以下是实现代码，可以直接运行试试看。</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_ZfGf7l">
&lt;p style=&quot;margin:5px 0 10px 0&quot;&gt;&lt;a style=&quot;&quot; href=&quot;http://www.1xi.net/&quot; target=&quot;_blank&quot;&gt;&lt;img onmouseover=&quot;try{this.style.height='100px';this.style.MozOpacity=1;this.filters.alpha.opacity=100;}catch(e){};&quot; onmouseout=&quot;try{this.style.height='40px';this.style.MozOpacity=0.8;this.filters.alpha.opacity=80;}catch(e){};&quot; style=&quot;-moz-opacity:0.8; filter:alpha(opacity=80);background:url('http://blog.1xi.net/wp-content/themes/church_10/images/logo.png') 0 bottom;height:40px;&quot; src=&quot;http://blog.1xi.net/images/tm.png&quot; alt=&quot;Fds's blog&quot; title=&quot;Fds's blog&quot;/ width=&quot;350&quot;&gt;&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_ZfGf7l');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_ZfGf7l');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/shubiaoshijian-he-tupiandaxiao/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用JavaScript验证表单中的email地址是否合法完整实例</title>
		<link>http://blog.1xi.net/javascript/check-form-emal</link>
		<comments>http://blog.1xi.net/javascript/check-form-emal#comments</comments>
		<pubDate>Thu, 20 Nov 2008 02:09:11 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[实例]]></category>
		<category><![CDATA[表单]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/javascript/check-form-emal</guid>
		<description><![CDATA[在设计表单是，经常要遇到要求输入EMAIL的。这里就用一个完整实例来说明用JavaScript验证email地址的完美方法。 以下是代码部分。 &#60;html&#62; &#60;head&#62; &#60;title&#62;验证email地址是否合法&#60;/title&#62; &#60;script language=&#34;JavaScript&#34;&#62; &#60;!-- function mail_process(stringin) { var num=email_test(stringin); var str=&#34;&#34;; if (num!=0) { switch (num) { case 1: str=&#34;首字符必须用字母！或不能为空！请返回重填。&#34;; break; case 2: str=&#34;您忘了填写邮件服务器的地址了！请返回重填。&#34;; break; case 3: str=&#34;您的帐号太短，不能少于三个字符!请返回重填。&#34;; break; case 4: str=&#34;您的帐号太长，不能多于十九个字符!请返回重填。&#34;; break; case 5: str=&#34;您使用了非法字符!请返回重填。&#34;; break; case 6: str=&#34;您的邮件服务器的地址不合法!请返回重填。&#34;; break; default: str=&#34;您的email地址不合法!请返回重填。&#34;; } alert(str); document.emal.email_add.focus(); return false; } else { [...]]]></description>
			<content:encoded><![CDATA[<p>在设计表单是，经常要遇到要求输入EMAIL的。这里就用一个完整实例来说明用JavaScript验证email地址的完美方法。</p>
<p>以下是代码部分。</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_qiEQpi">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;验证email地址是否合法&lt;/title&gt;
&lt;script language=&quot;JavaScript&quot;&gt;
&lt;!--
function mail_process(stringin)
{
var num=email_test(stringin);
var str=&quot;&quot;;
if (num!=0)
{
switch (num)
  {
   case 1:
      str=&quot;首字符必须用字母！或不能为空！请返回重填。&quot;;
      break;
   case 2:
      str=&quot;您忘了填写邮件服务器的地址了！请返回重填。&quot;;
      break;
   case 3:
      str=&quot;您的帐号太短，不能少于三个字符!请返回重填。&quot;;
      break;
   case 4:
      str=&quot;您的帐号太长，不能多于十九个字符!请返回重填。&quot;;
      break;
   case 5:
      str=&quot;您使用了非法字符!请返回重填。&quot;;
      break;
   case 6:
      str=&quot;您的邮件服务器的地址不合法!请返回重填。&quot;;
      break;
   default:
      str=&quot;您的email地址不合法!请返回重填。&quot;;
  }
alert(str);
document.emal.email_add.focus();
return false;
}
  else
  {
  alert(&quot;谢谢您!&quot;);
  eval(window.close());
  }
}
//--&gt;
function char_test(chr)
//字符检测函数
{
var i;
var smallch=&quot;abcdefghijklmnopqrstuvwxyz&quot;;
var bigch=&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;;
for(i=0;i&lt;26;i++)
  if(chr==smallch.charAt(i) || chr==bigch.charAt(i))
    return(1);
return(0);
}
function spchar_test(chr)
//数字和特殊字符检测函数
{
var i;
var spch=&quot;_-.0123456789&quot;;
for (i=0;i&lt;13;i++)
   if(chr==spch.charAt(i))
    return(1);
return(0);
}
function email_test(str)
{
var i,flag=0;
var at_symbol=0;
//“@”检测的位置
var dot_symbol=0;
//“.”检测的位置
if(char_test(str.charAt(0))==0 )
  return (1);
//首字符必须用字母
for (i=1;i&lt;str.length;i++)
  if(str.charAt(i)=='@')
    {
    at_symbol=i;
    break;
    }
//检测“@”的位置
if(at_symbol==str.length-1 || at_symbol==0)
  return(2);
//没有邮件服务器域名
if(at_symbol&lt;3)
  return(3);
//帐号少于三个字符
if(at_symbol&gt;19 )
  return(4);
//帐号多于十九个字符
for(i=1;i&lt;at_symbol;i++)
  if(char_test(str.charAt(i))==0 &amp;&amp; spchar_test(str.charAt(i))==0)
    return (5);
for(i=at_symbol+1;i&lt;str.length;i++)
  if(char_test(str.charAt(i))==0 &amp;&amp; spchar_test(str.charAt(i))==0)
    return (5);
//不能用其它的特殊字符
for(i=at_symbol+1;i&lt;str.length;i++)
  if(str.charAt(i)=='.') dot_symbol=i;
for(i=at_symbol+1;i&lt;str.length;i++)
  if(dot_symbol==0 || dot_symbol==str.length-1)
//简单的检测有没有“.”，以确定服务器名是否合法
  return (6);
return (0);
//邮件名合法
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form method=&quot;POST&quot; name=&quot;emal&quot; onSubmit=&quot;return mail_process(email_add.value)&quot;&gt;
&lt;p&gt;请输入您的E-mail地址：
&lt;input type=&quot;text&quot; name=&quot;email_add&quot; size=&quot;20&quot; &gt;
&lt;input type=&quot;submit&quot; value=&quot;确定&quot; name=&quot;B1&quot;&gt;&lt;/p&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_qiEQpi');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_qiEQpi');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/check-form-emal/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何防止网页的复制和剪贴操作？</title>
		<link>http://blog.1xi.net/javascript/oncopy-oncut</link>
		<comments>http://blog.1xi.net/javascript/oncopy-oncut#comments</comments>
		<pubDate>Mon, 27 Oct 2008 05:20:19 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[剪贴]]></category>
		<category><![CDATA[复制]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=96</guid>
		<description><![CDATA[有时候，为了防止别人复制自己的网页内容，我们需要防止网页上的复制和剪贴操作，看看下面的例子。 &#60;body oncopy=&#34;return false;&#34; oncut=&#34;return false;&#34;&#62; 复制这些文字试试看效果。 &#60;/body&#62; 提示：你可以先修改部分代码再运行。]]></description>
			<content:encoded><![CDATA[<p>有时候，为了防止别人复制自己的网页内容，我们需要防止网页上的复制和剪贴操作，看看下面的例子。</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_bppu3d">
&lt;body oncopy=&quot;return false;&quot; oncut=&quot;return false;&quot;&gt;
复制这些文字试试看效果。
&lt;/body&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_bppu3d');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_bppu3d');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/oncopy-oncut/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何禁止在网页中的粘贴动作？</title>
		<link>http://blog.1xi.net/javascript/onpaste-false</link>
		<comments>http://blog.1xi.net/javascript/onpaste-false#comments</comments>
		<pubDate>Sun, 26 Oct 2008 12:57:50 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[粘贴]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=94</guid>
		<description><![CDATA[如何禁止在网页中的粘贴动作？以下是一个例子，大家参考一下。 &#60;body onpaste=&#34;return false&#34;&#62; &#60;input value=&#34;&#34;&#62;试着粘贴文字看看 &#60;/body&#62; 提示：你可以先修改部分代码再运行。]]></description>
			<content:encoded><![CDATA[<p>如何禁止在网页中的粘贴动作？以下是一个例子，大家参考一下。</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_s8zfQz">
&lt;body onpaste=&quot;return false&quot;&gt;
&lt;input value=&quot;&quot;&gt;试着粘贴文字看看
&lt;/body&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_s8zfQz');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_s8zfQz');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/onpaste-false/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何禁止在网页选取来防止复制操作？</title>
		<link>http://blog.1xi.net/javascript/select-false</link>
		<comments>http://blog.1xi.net/javascript/select-false#comments</comments>
		<pubDate>Fri, 24 Oct 2008 06:50:23 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[网页]]></category>
		<category><![CDATA[选取]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=92</guid>
		<description><![CDATA[如何禁止在网页选取来防止复制操作？请看下面的实例。 &#60;body onselectstart=&#34;return false&#34;&#62; 试着用鼠标选取文字看看。 &#60;/body&#62; 提示：你可以先修改部分代码再运行。]]></description>
			<content:encoded><![CDATA[<p>如何禁止在网页选取来防止复制操作？请看下面的实例。</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_yykp0O">
&lt;body onselectstart=&quot;return false&quot;&gt;
试着用鼠标选取文字看看。
&lt;/body&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_yykp0O');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_yykp0O');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/select-false/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>如何彻底屏蔽网页鼠标右键菜单？</title>
		<link>http://blog.1xi.net/javascript/mouse-right-menu</link>
		<comments>http://blog.1xi.net/javascript/mouse-right-menu#comments</comments>
		<pubDate>Thu, 23 Oct 2008 06:23:36 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[网页]]></category>
		<category><![CDATA[鼠标]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=89</guid>
		<description><![CDATA[偶尔的时候，我会需要彻底屏蔽网页鼠标右键菜单，以下就是屏蔽网页鼠标右键菜单的方法。 &#60;body oncontextmenu=return(false)&#62; 用鼠标右键试试看效果呀。 &#60;/body&#62; 提示：你可以先修改部分代码再运行。]]></description>
			<content:encoded><![CDATA[<p>偶尔的时候，我会需要彻底屏蔽网页鼠标右键菜单，以下就是屏蔽网页鼠标右键菜单的方法。</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_c6fEdw">
&lt;body oncontextmenu=return(false)&gt;
用鼠标右键试试看效果呀。
&lt;/body&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_c6fEdw');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_c6fEdw');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/mouse-right-menu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用鼠标来拖动表格行的排列方式</title>
		<link>http://blog.1xi.net/javascript/table-tr</link>
		<comments>http://blog.1xi.net/javascript/table-tr#comments</comments>
		<pubDate>Wed, 22 Oct 2008 02:43:22 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[表格]]></category>
		<category><![CDATA[鼠标]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=86</guid>
		<description><![CDATA[用鼠标来拖动表格行的排列方式，看看是不是很酷呢。 看下面的实例： &#60;script language=&#34;javascript&#34;&#62; var beginMoving=false; function MouseDownToMove(obj){ obj.style.zIndex=1; obj.mouseDownY=event.clientY; obj.mouseDownX=event.clientX; beginMoving=true; obj.setCapture(); } function MouseMoveToMove(obj){ if(!beginMoving) return false; obj.style.top = (event.clientY-obj.mouseDownY); obj.style.left = (event.clientX-obj.mouseDownX); } function MouseUpToMove(obj){ if(!beginMoving) return false; obj.releaseCapture(); obj.style.top=0; obj.style.left=0; obj.style.zIndex=0; beginMoving=false; var tempTop=event.clientY-obj.mouseDownY; var tempRowIndex=(tempTop-tempTop%25)/25; if(tempRowIndex+obj.rowIndex &#60;0 )tempRowIndex=-1; else tempRowIndex=tempRowIndex+obj.rowIndex; if(tempRowIndex &#62;= obj.parentElement.rows.length-1) tempRowIndex = obj.parentElement.rows.length-1; obj.parentElement.moveRow(obj.rowIndex,tempRowIndex); } &#60;/script&#62; 用鼠标来拖动表格一行&#60;br&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>用鼠标来拖动表格行的排列方式，看看是不是很酷呢。<br />
看下面的实例：</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_ivH7LK">
&lt;script language=&quot;javascript&quot;&gt;
  var beginMoving=false;
function MouseDownToMove(obj){
 obj.style.zIndex=1;
 obj.mouseDownY=event.clientY;
 obj.mouseDownX=event.clientX;
 beginMoving=true;
 obj.setCapture();
}
function MouseMoveToMove(obj){
    if(!beginMoving) return false;
 obj.style.top = (event.clientY-obj.mouseDownY);
 obj.style.left = (event.clientX-obj.mouseDownX);
}
function MouseUpToMove(obj){
 if(!beginMoving) return false;
 obj.releaseCapture();
 obj.style.top=0;
 obj.style.left=0;
 obj.style.zIndex=0;
 beginMoving=false;
 var tempTop=event.clientY-obj.mouseDownY;
 var tempRowIndex=(tempTop-tempTop%25)/25;
 if(tempRowIndex+obj.rowIndex &lt;0 )tempRowIndex=-1;
 else tempRowIndex=tempRowIndex+obj.rowIndex;
 if(tempRowIndex &gt;= obj.parentElement.rows.length-1) tempRowIndex = obj.parentElement.rows.length-1;
 obj.parentElement.moveRow(obj.rowIndex,tempRowIndex);
}
&lt;/script&gt;
用鼠标来拖动表格一行&lt;br&gt;
  &lt;TABLE WIDTH=&quot;300&quot; BORDER=&quot;1&quot; &gt;
   &lt;TR bgcolor=#ffffff style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'&gt;&lt;TD bgcolor=blue&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;
   &lt;TR bgcolor=#ffffff style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'&gt;&lt;TD bgcolor=black&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;
   &lt;TR bgcolor=#ffffff style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'&gt;&lt;TD bgcolor=red&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;
   &lt;TR bgcolor=#ffffff style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;
   &lt;TR bgcolor=#ffffff style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;
   &lt;TR bgcolor=#ffffff style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;
   &lt;TR bgcolor=#ffffff style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;
   &lt;TR bgcolor=#ffffff style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;
   &lt;/script&gt;
  &lt;/TABLE&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_ivH7LK');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_ivH7LK');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/table-tr/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>设计一个通用表单验证函数</title>
		<link>http://blog.1xi.net/javascript/checkform</link>
		<comments>http://blog.1xi.net/javascript/checkform#comments</comments>
		<pubDate>Wed, 22 Oct 2008 01:25:34 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[表单]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=82</guid>
		<description><![CDATA[不管是动态网站,还是其它B/S结构的系统,都离不开表单，表单做为客户端向服务器提交数据的载体担当相当重要的角色。这就引出了一个问题,提交的数据合法吗?摆在我们面前的问题就是验证这些数据保证所提交的数据是合法的.所以,我们写了一个大堆的验证函数.当我们开始新的一个项目的开发时,我们又得写一大堆的验证函数,然后再调试这一大堆的函数&#8230; 本文将介绍一种方法来提高我的代码的可重用性,提高我们的开发效率. 个人以为表单的验证应该包含两部分: 第一,判断用户输入的数据是否合法. 第二,提示用户你的数据为什么是不合法的. 所以,我们的通用表单验证函数要实现的功能就是: 第一,取得用户输入的数据GetValue(el) 第二,验证用户的数据CheckForm(oForm) IE支持自定义属性,这就是这个通用函数实现的基础 我们可以在表单元素上加入描述自身信息的属性.有点像XML吧. check属性:该属性用于存储数据合法性的正则表达式. warning属性:该性性用于存储出错误提示信息. 第三,返回有误的表单提示GoBack(el) 这三个步骤的触发事件是onsubmit,记住是return CheckForm(this) 搞错了就全功尽弃了 :) &#60;form onsubmit=&#8221;return CheckForm(this)&#8221;&#62; 写到这里,整体框架就出来了,通过取得表单元素的check属性,取得字符串,构建正则表达式.再验证其值.如果通过验证就提交,如是数据不合法则取得表单元素的warning属性,产生提示信息.并返回到该表单元素.整个的框架也比较简单. 我们要做的就是写好正则表达式! 接下来我们来分析一下所有的表单元素 按其共性,我们将它们分为三类 每类表单的特点不一样,我们的目标就是写出通用的. 1.文输入框Text &#60;input type=&#8221;text&#8221; name=&#8221;txt&#8221;&#62; &#60;input type=&#8221;password&#8221; name=&#8221;pwd&#8221;&#62; &#60;input type=&#8221;hidden&#8221; name=&#8221;hid&#8221;&#62; &#60;input type=&#8221;file&#8221; name=&#8221;myfile&#8221;&#62; &#60;textarea name=&#8221;txts&#8221;&#62;&#60;/textarea&#62; 2.单多选框Choose &#60;input type=&#8221;checkbox&#8221; name=&#8221;c&#8221;&#62; &#60;input type=&#8221;checkbox&#8221; name=&#8221;c&#8221;&#62; &#60;input type=&#8221;radio&#8221; name=&#8221;r&#8221;&#62; &#60;input type=&#8221;radio&#8221; name=&#8221;r&#8221;&#62; 3.单多下拉菜单Select &#60;select [...]]]></description>
			<content:encoded><![CDATA[<p>不管是动态网站,还是其它B/S结构的系统,都离不开表单，表单做为客户端向服务器提交数据的载体担当相当重要的角色。这就引出了一个问题,提交的数据合法吗?摆在我们面前的问题就是验证这些数据保证所提交的数据是合法的.所以,我们写了一个大堆的验证函数.当我们开始新的一个项目的开发时,我们又得写一大堆的验证函数,然后再调试这一大堆的函数&#8230;<br />
本文将介绍一种方法来提高我的代码的可重用性,提高我们的开发效率.</p>
<p>个人以为表单的验证应该包含两部分:<br />
第一,判断用户输入的数据是否合法.<br />
第二,提示用户你的数据为什么是不合法的.</p>
<p>所以,我们的通用表单验证函数要实现的功能就是:<br />
第一,取得用户输入的数据GetValue(el)<br />
第二,验证用户的数据CheckForm(oForm)<br />
IE支持自定义属性,这就是这个通用函数实现的基础<br />
我们可以在表单元素上加入描述自身信息的属性.有点像XML吧.<br />
check属性:该属性用于存储数据合法性的正则表达式.<br />
warning属性:该性性用于存储出错误提示信息.<br />
第三,返回有误的表单提示GoBack(el)<br />
这三个步骤的触发事件是onsubmit,记住是return CheckForm(this)<br />
搞错了就全功尽弃了 :)<br />
&lt;form onsubmit=&#8221;return CheckForm(this)&#8221;&gt;</p>
<p>写到这里,整体框架就出来了,通过取得表单元素的check属性,取得字符串,构建正则表达式.再验证其值.如果通过验证就提交,如是数据不合法则取得表单元素的warning属性,产生提示信息.并返回到该表单元素.整个的框架也比较简单.<br />
我们要做的就是写好正则表达式!</p>
<p>接下来我们来分析一下所有的表单元素<br />
按其共性,我们将它们分为三类<br />
每类表单的特点不一样,我们的目标就是写出通用的.</p>
<p>1.文输入框Text<br />
&lt;input type=&#8221;text&#8221; name=&#8221;txt&#8221;&gt;<br />
&lt;input type=&#8221;password&#8221; name=&#8221;pwd&#8221;&gt;<br />
&lt;input type=&#8221;hidden&#8221; name=&#8221;hid&#8221;&gt;<br />
&lt;input type=&#8221;file&#8221; name=&#8221;myfile&#8221;&gt;<br />
&lt;textarea name=&#8221;txts&#8221;&gt;&lt;/textarea&gt;<br />
2.单多选框Choose<br />
&lt;input type=&#8221;checkbox&#8221; name=&#8221;c&#8221;&gt;<br />
&lt;input type=&#8221;checkbox&#8221; name=&#8221;c&#8221;&gt;<br />
&lt;input type=&#8221;radio&#8221; name=&#8221;r&#8221;&gt;<br />
&lt;input type=&#8221;radio&#8221; name=&#8221;r&#8221;&gt;<br />
3.单多下拉菜单Select<br />
&lt;select name=&#8221;sel&#8221;&gt;&lt;/select&gt;<br />
&lt;select name=&#8221;sels&#8221; multiple&gt;&lt;/select&gt;<br />
讲了一堆&#8221;大道理&#8221;太抽象了,代码更有说服力!</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_thpGj3">
&lt;script language=&quot;JavaScript&quot;&gt;
&lt;!--
////////////////////////////////////////////////////////////////////////////////
/*
*--------------- 客户端表单通用验证CheckForm(oForm) -----------------
* 功能:通用验证所有的表单元素.
* 使用:
* &lt;form name=&quot;form1&quot; onsubmit=&quot;return CheckForm(this)&quot;&gt;
* &lt;input type=&quot;text&quot; name=&quot;id&quot; check=&quot;^\S+$&quot; warning=&quot;id不能为空,且不能含有空格&quot;&gt;
* &lt;input type=&quot;submit&quot;&gt;
* &lt;/form&gt;
* 注意:写正则表达式时一定要小心.不要让&quot;有心人&quot;有空子钻.
* 已实现功能:
* 对text,password,hidden,file,textarea,select,radio,checkbox进行合法性验证
* 待实现功能:把正则表式写成个库.
*--------------- 客户端表单通用验证CheckForm(oForm) -----------------
*/
////////////////////////////////////////////////////////////////////////////////
//主函数
function CheckForm(oForm)
{
var els = oForm.elements;
//遍历所有表元素
for(var i=0;i&lt;els.length;i++)
{
//是否需要验证
if(els[i].check)
{
//取得验证的正则字符串
var sReg = els[i].check;
//取得表单的值,用通用取值函数
var sVal = GetValue(els[i]);
//字符串-&gt;正则表达式,不区分大小写
var reg = new RegExp(sReg,&quot;i&quot;);
if(!reg.test(sVal))
{
//验证不通过,弹出提示warning
alert(els[i].warning);
//该表单元素取得焦点,用通用返回函数
GoBack(els[i])
return false;
}
}
}
}
//通用取值函数分三类进行取值
//文本输入框,直接取值el.value
//单多选,遍历所有选项取得被选中的个数返回结果&quot;00&quot;表示选中两个
//单多下拉菜单,遍历所有选项取得被选中的个数返回结果&quot;0&quot;表示选中一个
function GetValue(el)
{
//取得表单元素的类型
var sType = el.type;
switch(sType)
{
case &quot;text&quot;:
case &quot;hidden&quot;:
case &quot;password&quot;:
case &quot;file&quot;:
case &quot;textarea&quot;: return el.value;
case &quot;checkbox&quot;:
case &quot;radio&quot;: return GetValueChoose(el);
case &quot;select-one&quot;:
case &quot;select-multiple&quot;: return GetValueSel(el);
}
//取得radio,checkbox的选中数,用&quot;0&quot;来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
function GetValueChoose(el)
{
var sValue = &quot;&quot;;
//取得第一个元素的name,搜索这个元素组
var tmpels = document.getElementsByName(el.name);
for(var i=0;i&lt;tmpels.length;i++)
{
if(tmpels[i].checked)
{
sValue += &quot;0&quot;;
}
}
return sValue;
}
//取得select的选中数,用&quot;0&quot;来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
function GetValueSel(el)
{
var sValue = &quot;&quot;;
for(var i=0;i&lt;el.options.length;i++)
{
//单选下拉框提示选项设置为value=&quot;&quot;
if(el.options[i].selected &amp;&amp; el.options[i].value!=&quot;&quot;)
{
sValue += &quot;0&quot;;
}
}
return sValue;
}
}
//通用返回函数,验证没通过返回的效果.分三类进行取值
//文本输入框,光标定位在文本输入框的末尾
//单多选,第一选项取得焦点
//单多下拉菜单,取得焦点
function GoBack(el)
{
//取得表单元素的类型
var sType = el.type;
switch(sType)
{
case &quot;text&quot;:
case &quot;hidden&quot;:
case &quot;password&quot;:
case &quot;file&quot;:
case &quot;textarea&quot;: el.focus();var rng = el.createTextRange(); rng.collapse(false); rng.select();
case &quot;checkbox&quot;:
case &quot;radio&quot;: var els = document.getElementsByName(el.name);els[0].focus();
case &quot;select-one&quot;:
case &quot;select-multiple&quot;:el.focus();
}
}
//--&gt;
&lt;/script&gt;
&lt;form name=&quot;form1&quot; onsubmit=&quot;return CheckForm(this)&quot;&gt;
test:&lt;input type=&quot;text&quot; name=&quot;test&quot;&gt;不验证&lt;br/&gt;
账号:&lt;input type=&quot;text&quot; check=&quot;^\S+$&quot; warning=&quot;账号不能为空,且不能含有空格&quot; name=&quot;id&quot;&gt;不能为空&lt;br/&gt;
密码:&lt;input type=&quot;password&quot; check=&quot;\S{6,}&quot; warning=&quot;密码六位以上&quot; name=&quot;id&quot;&gt;六位以上&lt;br/&gt;
电话:&lt;input type=&quot;text&quot; check=&quot;^\d+$&quot; warning=&quot;电话号码含有非法字符&quot; name=&quot;number&quot; value=&quot;&quot;&gt;&lt;br/&gt;
相片上传:&lt;input type=&quot;file&quot; check=&quot;(.*)(\.jpg|\.bmp)$&quot; warning=&quot;相片应该为JPG,BMP格式的&quot; name=&quot;pic&quot; value=&quot;1&quot;&gt;&lt;br/&gt;
出生日期:&lt;input type=&quot;text&quot; check=&quot;^\d{4}\-\d{1,2}-\d{1,2}$&quot; warning=&quot;日期格式2004-08-10&quot; name=&quot;dt&quot; value=&quot;&quot;&gt;日期格式2004-08-10&lt;br/&gt;
省份:
&lt;select name=&quot;sel&quot; check=&quot;^0$&quot; warning=&quot;请选择所在省份&quot;&gt;
&lt;option value=&quot;&quot;&gt;请选择
&lt;option value=&quot;1&quot;&gt;福建省
&lt;option value=&quot;2&quot;&gt;湖北省
&lt;/select&gt;
&lt;br/&gt;
选择你喜欢的运动:&lt;br/&gt;
游泳&lt;input type=&quot;checkbox&quot; name=&quot;c&quot; check=&quot;^0{2,}$&quot; warning=&quot;请选择2项或以上&quot;&gt;
篮球&lt;input type=&quot;checkbox&quot; name=&quot;c&quot;&gt;
足球&lt;input type=&quot;checkbox&quot; name=&quot;c&quot;&gt;
排球&lt;input type=&quot;checkbox&quot; name=&quot;c&quot;&gt;
&lt;br/&gt;
你的学历:
大学&lt;input type=&quot;radio&quot; name=&quot;r&quot; check=&quot;^0$&quot; warning=&quot;请选择一项学历&quot;&gt;
中学&lt;input type=&quot;radio&quot; name=&quot;r&quot;&gt;
小学&lt;input type=&quot;radio&quot; name=&quot;r&quot;&gt;
&lt;br/&gt;
个人介绍:
&lt;textarea name=&quot;txts&quot; check=&quot;^[\s|\S]{20,}$&quot; warning=&quot;个人介绍不能为空,且不少于20字&quot;&gt;&lt;/textarea&gt;20个字以上
&lt;input type=&quot;submit&quot;&gt;
&lt;/form&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_thpGj3');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_thpGj3');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/checkform/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>判断表单的输入框是否为空，并用光标的焦点定指向输入框</title>
		<link>http://blog.1xi.net/javascript/14</link>
		<comments>http://blog.1xi.net/javascript/14#comments</comments>
		<pubDate>Fri, 17 Oct 2008 06:57:16 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[光标]]></category>
		<category><![CDATA[表单]]></category>
		<category><![CDATA[输入框]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=75</guid>
		<description><![CDATA[我们通常设计表单都会碰到这样也个情况，一个表单内的文本框必须要输入内容，在没有输入内容提交时就会提示出错，那么如何防止客户端在没有输入时就提交表单呢？请看下面一个例子，如果您没有输入任何值时就会出现提示对话框。 示例： &#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62; &#60;head&#62; &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62; &#60;title&#62;判断表单输入框是否为空，并用光标的焦点定指向输入框&#60;/title&#62; &#60;/head&#62; &#60;body&#62; &#60;form name=&#34;free&#34;method=&#34;POST&#34;action=&#34;&#34;onsubmit=&#34;return check()&#34;&#62; &#60;p align=&#34;center&#34;&#62; &#60;input type=&#34;text&#34;name=&#34;t1&#34;size=&#34;20&#34;&#62; &#60;input type=&#34;submit&#34;value=&#34;提交&#34;name=&#34;B1&#34;&#62; &#60;/p&#62; &#60;/form&#62; &#60;script LANGUAGE=&#34;javascript&#34;&#62; &#60;!-- function check() { if(document.free.t1.value.length==0){ alert(&#34;输入框不能为空!&#34;); document.free.t1.focus(); return false; } } //--&#62; &#60;/script&#62; &#60;/body&#62; &#60;/html&#62; 提示：你可以先修改部分代码再运行。]]></description>
			<content:encoded><![CDATA[<p>我们通常设计表单都会碰到这样也个情况，一个表单内的文本框必须要输入内容，在没有输入内容提交时就会提示出错，那么如何防止客户端在没有输入时就提交表单呢？请看下面一个例子，如果您没有输入任何值时就会出现提示对话框。<br />
示例：</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_EmYi6R">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;判断表单输入框是否为空，并用光标的焦点定指向输入框&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form name=&quot;free&quot;method=&quot;POST&quot;action=&quot;&quot;onsubmit=&quot;return check()&quot;&gt;
&lt;p align=&quot;center&quot;&gt;
  &lt;input type=&quot;text&quot;name=&quot;t1&quot;size=&quot;20&quot;&gt;
  &lt;input type=&quot;submit&quot;value=&quot;提交&quot;name=&quot;B1&quot;&gt;
&lt;/p&gt;
&lt;/form&gt;
&lt;script LANGUAGE=&quot;javascript&quot;&gt;
&lt;!--
function check()
{
if(document.free.t1.value.length==0){
     alert(&quot;输入框不能为空!&quot;);
     document.free.t1.focus();
     return false;
    }
  }
//--&gt;
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_EmYi6R');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_EmYi6R');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/14/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用超链接的方式实现提交表单的例子</title>
		<link>http://blog.1xi.net/javascript/a-to-form</link>
		<comments>http://blog.1xi.net/javascript/a-to-form#comments</comments>
		<pubDate>Fri, 17 Oct 2008 01:17:57 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[表单]]></category>
		<category><![CDATA[超链接]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=69</guid>
		<description><![CDATA[今天举个用超链接的方式实现提交表单的例子，有时候很有作用哦，以下是示例： &#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62; &#60;head&#62; &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62; &#60;title&#62;用超链接的方式实现提交表单的例子&#60;/title&#62; &#60;/head&#62; &#60;body&#62; &#60;script LANGUAGE=&#34;JavaScript&#34;&#62; function checkvalue() { if(document.welcomeform.myname.value==&#34;&#34;) { alert(&#34;昵称不能为空！&#34;); return(false); } if(document.welcomeform.mypassword.value==&#34;&#34;) { alert(&#34;密码不能为空！&#34;); return(false); } document.welcomeform.submit(); return(true); } &#60;/script&#62; &#60;form name=&#34;welcomeform&#34; method=&#34;post&#34; action=&#34;index.php&#34;&#62; 昵称：&#60;input type=&#34;text&#34; name=&#34;myname&#34; value=&#34;&#34;&#62; 密码：&#60;input type=&#34;password&#34; name=&#34;mypassword&#34; value=&#34;&#34;&#62; &#60;a href=&#34;#&#34; onclick=&#34;JavaScript:checkvalue();return false;&#34;&#62;登录&#60;/a&#62; &#60;/form&#62; &#60;/body&#62; &#60;/html&#62; 提示：你可以先修改部分代码再运行。]]></description>
			<content:encoded><![CDATA[<p>今天举个用超链接的方式实现提交表单的例子，有时候很有作用哦，以下是示例：</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_9Qnqx4">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;用超链接的方式实现提交表单的例子&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script LANGUAGE=&quot;JavaScript&quot;&gt;
function checkvalue()
{
  if(document.welcomeform.myname.value==&quot;&quot;)
  {
   alert(&quot;昵称不能为空！&quot;);
   return(false);
   }
  if(document.welcomeform.mypassword.value==&quot;&quot;)
  {
   alert(&quot;密码不能为空！&quot;);
   return(false);
   }
  document.welcomeform.submit();
  return(true);
}
&lt;/script&gt;
&lt;form name=&quot;welcomeform&quot; method=&quot;post&quot; action=&quot;index.php&quot;&gt;
昵称：&lt;input type=&quot;text&quot; name=&quot;myname&quot; value=&quot;&quot;&gt;
密码：&lt;input type=&quot;password&quot; name=&quot;mypassword&quot; value=&quot;&quot;&gt;
  &lt;a href=&quot;#&quot; onclick=&quot;JavaScript:checkvalue();return false;&quot;&gt;登录&lt;/a&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_9Qnqx4');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_9Qnqx4');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/a-to-form/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在JavaScript中创建对象的实例二</title>
		<link>http://blog.1xi.net/javascript/12-3</link>
		<comments>http://blog.1xi.net/javascript/12-3#comments</comments>
		<pubDate>Thu, 16 Oct 2008 01:01:47 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[实例]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=62</guid>
		<description><![CDATA[在JavaScript中创建对象的实例二，颜色变化的例子。 &#60;html&#62; &#60;head&#62; &#60;script&#62; &#60;!-- function makearray(n) { this.length = n; for(var i = 1; i &#60;= n; i++) this[i] = 0; return this;} hexa = new makearray(16); for(var i = 0; i &#60; 10; i++) hexa[i] = i; hexa[10]=&#34;a&#34;; hexa[11]=&#34;b&#34;; hexa[12]=&#34;c&#34;; hexa[13]=&#34;d&#34;; hexa[14]=&#34;e&#34;; hexa[15]=&#34;f&#34;; function hex(i) { if (i &#60; 0) return &#34;00&#34;; else [...]]]></description>
			<content:encoded><![CDATA[<p>在JavaScript中创建对象的实例二，颜色变化的例子。</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode__z9hKk">
&lt;html&gt;
&lt;head&gt;
&lt;script&gt;
&lt;!--
function makearray(n) {
this.length = n;
for(var i = 1; i &lt;= n; i++)
this[i] = 0;
return this;}
hexa = new makearray(16);
for(var i = 0; i &lt; 10; i++)
hexa[i] = i;
hexa[10]=&quot;a&quot;;
hexa[11]=&quot;b&quot;;
hexa[12]=&quot;c&quot;;
hexa[13]=&quot;d&quot;;
hexa[14]=&quot;e&quot;;
hexa[15]=&quot;f&quot;;
function hex(i) {
if (i &lt; 0)
return &quot;00&quot;;
else if (i &gt; 255)
return &quot;ff&quot;;
else return &quot;&quot; + hexa[Math.floor(i/16)] + hexa[i%16];}
function setbgColor(r, g, b) {
var hr = hex(r);
var hg = hex(g);
var hb = hex(b);
document.bgColor = &quot;#&quot;+hr+hg+hb;}
function fade(sr, sg, sb, er, eg, eb, step) {
for(var i = 0; i &lt;= step; i++) {
setbgColor( Math.floor(sr * ((step-i)/step) + er * (i/step)),
Math.floor(sg * ((step-i)/step) + eg * (i/step)), Math.floor(sb *
((step-i)/step) + eb * (i/step))); }}
function fadein() {
fade(255,0,0,0,0,255,100);
fade(0,0,255,0,255,0,100);
fade(0,255,0, 0,0,0, 100);}
fadein();
// --&gt;
&lt;/script&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode__z9hKk');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode__z9hKk');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/12-3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在JavaScript中创建对象的实例一</title>
		<link>http://blog.1xi.net/javascript/12-2</link>
		<comments>http://blog.1xi.net/javascript/12-2#comments</comments>
		<pubDate>Wed, 15 Oct 2008 01:08:56 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[实例]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=60</guid>
		<description><![CDATA[在JavaScript中创建对象的实例一，一个动态文字滚动的例子。 &#60;html&#62; &#60;head&#62; &#60;title&#62;&#60;/title&#62; &#60;script LANGUAGE=&#34;JavaScript&#34;&#62; 　 with (top.window.location) {baseURL = href.substring (0,href.lastIndexOf (&#34;/&#34;) + 1)} total_toc_items = 0; current_overID = &#34;&#34;; last_overID = &#34;&#34;; browser = navigator.appName; version = parseInt(navigator.appVersion); client=null; loaded = 0; if (browser == &#34;Netscape&#34; &#38;&#38; version &#62;= 3) client = &#34;ns3&#34;; function toc_item (img_name,icon_col,width,height) { if (client ==&#34;ns3&#34;) { img_prefix [...]]]></description>
			<content:encoded><![CDATA[<p>在JavaScript中创建对象的实例一，一个动态文字滚动的例子。</p>
<div class="runcode">
<p><textarea name="runcode" class="runcode_text" id="runcode_qn9LNC">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;&lt;/title&gt;
&lt;script LANGUAGE=&quot;JavaScript&quot;&gt;
　
with (top.window.location)
{baseURL = href.substring (0,href.lastIndexOf (&quot;/&quot;) + 1)}
total_toc_items = 0;
current_overID = &quot;&quot;;
last_overID = &quot;&quot;;
browser = navigator.appName;
version = parseInt(navigator.appVersion);
client=null;
loaded = 0;
if (browser == &quot;Netscape&quot; &amp;&amp; version &gt;= 3) client = &quot;ns3&quot;;
function toc_item (img_name,icon_col,width,height) {
if (client ==&quot;ns3&quot;) {
img_prefix = baseURL + img_name;
this.icon_col = icon_col;
this.toc_img_off = new Image (width,height);
this.toc_img_off.src = img_prefix + &quot;_off.gif&quot;;
this.toc_img_on = new Image (width,height);
this.toc_img_on.src = img_prefix + &quot;_on.gif&quot;;
}
}
　
function new_toc_item (img_name,icon_row,width,height) {
toc_item [img_name] = new toc_item (img_name,icon_row,width,height);
}
　
function toc_mouseover (itemID) {
if (client ==&quot;ns3&quot;) {
current_overID = itemID;
if (current_overID != last_overID) {
document [current_overID].src = toc_item [current_overID].toc_img_on.src;
if (last_overID != &quot;&quot;) {
document.images [last_overID].src = toc_item[last_overID].toc_img_off.src;
}
last_overID = current_overID;
}
}
}
　
function toc_mouseout () {
if (client ==&quot;ns3&quot;) {
if (current_overID != &quot;&quot;) {
document.images [current_overID].src = toc_item [current_overID].toc_img_off.src;
}
current_overID = &quot;&quot;;
last_overID = &quot;&quot;;
}
}
new_toc_item (&quot;1&quot;,2,120,20);
&lt;!-- Begin
function bannerObject(p){
this.msg = MESSAGE
this.out = &quot; &quot;
this.pos = POSITION
this.delay = DELAY
this.i = 0
this.reset = clearMessage}
　
function clearMessage(){
this.pos = POSITION}
var POSITION = 50;
var DELAY = 150;
var MESSAGE = &quot;这是一个动态JavaScript文字显示的例子&quot;;
var scroll = new bannerObject();
function scroller(){
scroll.out += &quot; &quot;;
if(scroll.pos&gt;0)
for (scroll.i = 0; scroll.i &lt; scroll.pos; scroll.i++) { scroll.out +=&quot; &quot; ; }
if (scroll.pos&gt;= 0)
scroll.out += scroll.msg
else
scroll.out = scroll.msg.substring(-scroll.pos,scroll.msg.length)
document.noticeForm.notice.value = scroll.out
scroll.out = &quot; &quot;;
scroll.pos--;
scroll.pos--;
if (scroll.pos &lt; -(scroll.msg.length)) { scroll.reset(); } setTimeout
('scroller()',scroll.delay);}
&lt;/script&gt;
&lt;/head&gt;
&lt;body onload=&quot;scroller()&quot; bgcolor=&quot;#000000&quot; link=&quot;#C0C0C0&quot; vlink=&quot;#C0C0C0&quot;
alink=&quot;#008080&quot;
text=&quot;#C0C0C0&quot;&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td width=&quot;100%&quot;&gt;&lt;form NAME=&quot;noticeForm&quot;&gt;
&lt;p&gt;&lt;input TYPE=&quot;text&quot; name=&quot;notice&quot; size=&quot;40&quot; style=&quot;background-color: rgb(192,192,192)&quot;&gt;&lt;/p&gt;
&lt;/form&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/center&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea></p>
<p><input type="button" value="运行" class="runcode_button" onclick="runcode_open_new('runcode_qn9LNC');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_qn9LNC');"/> 提示：你可以先修改部分代码再运行。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/12-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在JavaScript中创建对象</title>
		<link>http://blog.1xi.net/javascript/12</link>
		<comments>http://blog.1xi.net/javascript/12#comments</comments>
		<pubDate>Tue, 14 Oct 2008 07:06:56 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[对象]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/?p=57</guid>
		<description><![CDATA[　　使用JavaScript可以创建自己的对象。虽然JavaScript内部和浏览器本身的功能已十分强大，但JavaScript还是提供了创建一个新对象的方法。使其不必像超文本标识语言那样，求于或其它多媒体工具，就能完成许多复杂的工作。 　　在JavaScript中创建一个新的对象是十分简单的。首先它必须定义一个对象，而后再为该对象创建一个实例。这个实例就是一个新对象，它具有对象定义中的基本特征。 一、对象的定义 JavaScript对象的定义，其基本格式如下： Function Object（属性表） This.prop1=prop1 This.prop2=prop2 &#8230; This.meth=FunctionName1; This.meth=FunctionName2; &#8230; 在一个对象的定义中，可以为该对象指明其属性和方法。通过属性和方法构成了一个对象的实例。如以下是一个关于University对象的定义： Function university(name,city,creatDate URL) This.name=name This.city=city This.creatDate=New Date(creatDate) This.URL=URL 其基本含义如下： Name－指定一个“单位”名称。 　 City－“单位”所在城市。 　 CreatDate－记载university对象的更新日期。 　 URL－该对象指向一个网址。 二、创建对象实例 一旦对象定义完成后，就可以为该对象创建一个实例了： NewObject=New object(); 其中Newobjet是新的对象，Object已经定义好的对象。例： U1=New university(“云南省”，“昆明市”，"January 05,199712:00:00","http://www.YN.KM") U2=New university(“云南电子科技大学”，“昆明”,"January 07,1997 12:00:00","htlp://www.YNKJ.CN") 　 三、对象方法的使用 在对象中除了使用属性外，有时还需要使用方法。在对象的定义中，我们看到This.meth=FunctionName语句，那就是为定义对象的方法。实质对象的方法就是一个函数FunctionName，通过它实现自己的意图。 例在university对象中增加一个方法，该方法是显示它自己本身，并返回相应的字串。 function university(name,city,createDate,URL) This.Name=Name; This.city=city; This.createDate=New Date(creatDate)； This.URL=URL； This.showuniversity=showuniversity; 其中This.showuniversity就是定义了一个方法－－－showuniversity()。 而showuniversity()方法是实现university对象本身的显示。 [...]]]></description>
			<content:encoded><![CDATA[<p>　　使用JavaScript可以创建自己的对象。虽然JavaScript内部和浏览器本身的功能已十分强大，但JavaScript还是提供了创建一个新对象的方法。使其不必像超文本标识语言那样，求于或其它多媒体工具，就能完成许多复杂的工作。<br />
　　在JavaScript中创建一个新的对象是十分简单的。首先它必须定义一个对象，而后再为该对象创建一个实例。这个实例就是一个新对象，它具有对象定义中的基本特征。</p>
<p><strong>一、对象的定义</strong><br />
JavaScript对象的定义，其基本格式如下：<br />
Function Object（属性表）<br />
This.prop1=prop1<br />
This.prop2=prop2<br />
&#8230;<br />
This.meth=FunctionName1;<br />
This.meth=FunctionName2;<br />
&#8230;<br />
在一个对象的定义中，可以为该对象指明其属性和方法。通过属性和方法构成了一个对象的实例。如以下是一个关于University对象的定义：<br />
Function university(name,city,creatDate URL)<br />
This.name=name<br />
This.city=city<br />
This.creatDate=New Date(creatDate)<br />
This.URL=URL<br />
其基本含义如下：<br />
Name－指定一个“单位”名称。 　<br />
City－“单位”所在城市。 　<br />
CreatDate－记载university对象的更新日期。 　<br />
URL－该对象指向一个网址。</p>
<p><strong>二、创建对象实例</strong><br />
一旦对象定义完成后，就可以为该对象创建一个实例了：<br />
NewObject=New object();<br />
其中Newobjet是新的对象，Object已经定义好的对象。例：<br />
<code><br />
U1=New university(“云南省”，“昆明市”，"January 05,199712:00:00","http://www.YN.KM")<br />
U2=New university(“云南电子科技大学”，“昆明”,"January 07,1997 12:00:00","htlp://www.YNKJ.CN")<br />
</code>　<br />
<strong>三、对象方法的使用</strong><br />
在对象中除了使用属性外，有时还需要使用方法。在对象的定义中，我们看到This.meth=FunctionName语句，那就是为定义对象的方法。实质对象的方法就是一个函数FunctionName，通过它实现自己的意图。<br />
例在university对象中增加一个方法，该方法是显示它自己本身，并返回相应的字串。<br />
function university(name,city,createDate,URL)<br />
This.Name=Name;<br />
This.city=city;<br />
This.createDate=New Date(creatDate)；<br />
This.URL=URL；<br />
This.showuniversity=showuniversity;<br />
其中This.showuniversity就是定义了一个方法－－－showuniversity()。<br />
而showuniversity()方法是实现university对象本身的显示。<br />
function showuniversity()<br />
For (var prop in this)<br />
alert(prop+=&#8221;+this[prop]+&#8221;");<br />
其中alert是JavaScript中的内部函数，显示其字符串。<br />
　<br />
<strong>四、JavaScript中的数组</strong>　<br />
使用New创建数组<br />
JavaScript中没有提供像其它语言具有明显的数组类型，但可以通过function定义一个数组，并使用New对象操作符创建一个具有下标的数组。从而可以实现任何数据类型的存储。<br />
<span style="color: #ff0000;">a、定义对象的数组</span><br />
Function arrayName(size){<br />
This.length=Size;<br />
for(var X=; X&lt;=size;X++)<br />
this[X]=0;<br />
Reture this;<br />
}<br />
其中arrayName是定义数组的一个名子，Size是有关数组大小的值（1-size），即数组元素的个数。通过for循环对一个当前对象的数组进行定义，最后返回这个数组。<br />
从中可以看出，JavaScript中的数组是从1到size，这与其它０到size的数组表示方法有所不同，当然你可根据需要将数组的下标由１到size调整到０到size－１,可由下列实现:<br />
Function arrayName (size)<br />
For (var X=0; X&lt;=size;X++)<br />
this[X]=0;<br />
this.lenght=size;<br />
Return this;<br />
从上面可以看出该方法是只是调整了this.lenght的位置，该位置是用于存储数组的大小的。从而调整后的数组的下标将与其它语言一致。但请读者注意正是由于数组下标顺序由１到size，使得JavaScript中的对象功能更加强大。<br />
<span style="color: #ff0000;">b、创建数组实例</span><br />
一个数组定义完成以后，还不能马上使用，必须为该数组创建一个数组实例：<br />
Myarray=New arrayName(n);<br />
并赋于初值：<br />
Myarray[1]=“字串１”；<br />
Myarray[2]=“字串２”；<br />
Myarray[3]=“字串３”；<br />
&#8230;<br />
Myarray[n]=“字串n”；<br />
一旦给数组赋于了初值后，数组中就具有真正意义的数据了，以后就可以在程序设计过程中直接引用。<br />
创建多维数组<br />
Function creatMArray(row,col){<br />
var indx=0;<br />
this.length=(row*10)+col<br />
for(var x=1;x&lt;=row;x++)<br />
for(var y=1;y&lt;=col;y++)<br />
indx=(x*10)+y;<br />
this[indx]=””;<br />
}<br />
myMArray=new creatMArray();<br />
之后可通过myMArray[11]、myMArray[12]、myMArray[13]、myMArray[21]、myMArray[22]、myMArray[23]、<br />
…来引用。<br />
内部数组<br />
在Java中为了方便内部对象的操作,可以使用窗体(Forms)、框架(Frames)、元素(element)、链接(links)和锚(Anchors)数组实现对象的访问。<br />
　anchors[]:使用《A name=“anchorName“》标识来建立锚的链接。</p>
<p>　links[]: 使用&lt;A href=”URL”&gt;来定义一个越文本链接项。</p>
<p>　Forms[]: 在程序中使用多窗体时,建立该数组。</p>
<p>　Elements[]:在一个窗口中使用从个元素时,建立该数组。</p>
<p>　Frames[]:建立框架时,使用该数组</p>
<p>　anchors[]用于窗体的访问(它是通过《form name=“form1”》所指定的),link[]用于被链接到的锚点的访问(它是通过《a href=URL》所指定的)。Forms[]反映窗体的属性,而anchors[]反映Web页面中的链接属性。<br />
有关锚数组的文档：<br />
&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&lt;BODY&gt;<br />
&lt;A NAME=”MyAnchorsName1”&gt; 定义第一个锚名<br />
HTML Code<br />
&lt;A NAME=”MyAnchorsName2”&gt; 定义第二个锚名<br />
HTML Code<br />
&lt;A HREF=”#MyAnchorsName1”&gt;建立锚的链接<br />
&lt;A HREF=”#MyAnchorsName2&#8243;&gt; 建立锚的链接<br />
….<br />
该文档段建立了两面全锚的链接,可通过Anchors[]访问这些锚。document.Anchors[0]反映第一个锚,而document.Anchors[1]反映第二个锚的有关信息。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/12/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用JAVASCRIPT让IFRAME框架的高度自适应</title>
		<link>http://blog.1xi.net/javascript/iframe</link>
		<comments>http://blog.1xi.net/javascript/iframe#comments</comments>
		<pubDate>Mon, 01 Sep 2008 09:46:28 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[JAVASCRIPT]]></category>

		<guid isPermaLink="false">http://www.1xi.net/blog/?p=43</guid>
		<description><![CDATA[页面内嵌不同的网页内容时，导致iframe的高度无法与实现内容或浏览器高度相匹配。窗口大小变换时，不能iframe不能进行自动调整。这里，我们利用JAVASCRIPT让IFRAME框架的高度自适应。 首先，写出如下的JS方法。 /**  * 内嵌页面的高度设置  */ function handleFrameLoad() {  var hDoc = getBodyHeight(document);  var tblmain =  document.getElementById('tblMain');  var mFrame = window.mainFrame;  var hFrameDoc = getFrameHeight(mFrame);  var hTable = hDoc-80; //减去该页面除iframe外其他控件所占的高度.  if(hFrameDoc &#62; hTable) hTable = hFrameDoc;  tblmain.style.height = hTable;  mFrame.height = hTable;  if(window.mainFrame.moduleRight != null){     //表示该内嵌页，包含内嵌的页面，页iframe的id固定为moduleRight。     initFrameHeight(mFrame,hTable);  } } /**  * 获取当前页面的高度  */ [...]]]></description>
			<content:encoded><![CDATA[<p>页面内嵌不同的网页内容时，导致iframe的高度无法与实现内容或浏览器高度相匹配。窗口大小变换时，不能iframe不能进行自动调整。这里，我们利用JAVASCRIPT让IFRAME框架的高度自适应。</p>
<p>首先，写出如下的JS方法。<br />
<code><br />
/**<br />
 * 内嵌页面的高度设置<br />
 */<br />
function handleFrameLoad() {<br />
 var hDoc = getBodyHeight(document);<br />
 var tblmain =  document.getElementById('tblMain');<br />
 var mFrame = window.mainFrame;<br />
 var hFrameDoc = getFrameHeight(mFrame);<br />
 var hTable = hDoc-80; //减去该页面除iframe外其他控件所占的高度.<br />
 if(hFrameDoc &gt; hTable) hTable = hFrameDoc;<br />
 tblmain.style.height = hTable;<br />
 mFrame.height = hTable;<br />
 if(window.mainFrame.moduleRight != null){<br />
    //表示该内嵌页，包含内嵌的页面，页iframe的id固定为moduleRight。<br />
    initFrameHeight(mFrame,hTable);<br />
 }<br />
}</p>
<p>/**<br />
 * 获取当前页面的高度<br />
 */<br />
function getBodyHeight(doc){<br />
  if(doc.all) return doc.body.offsetHeight;<br />
  else return doc.body.scrollHeight;<br />
}</p>
<p>/**<br />
 * 获取内嵌页中的高度.<br />
 * 若另含子内嵌(moduleRight)页时,应考虑该页面的高度.<br />
 */<br />
function getFrameHeight(mFrame){<br />
  var h1 = mFrame.document.body.offsetHeight;<br />
  var h2 = mFrame.document.body.scrollHeight;<br />
  if(mFrame.moduleRight != null){<br />
      var h3 = mFrame.moduleRight.document.body.scrollHeight;<br />
    if(h3 &gt; h2) h2 = h3;<br />
  }<br />
  return h2;<br />
}</p>
<p>/**<br />
 * 设置子内嵌页面的高度.<br />
 * 通过设置iframe所在table的高度来调整。<br />
 */<br />
function initFrameHeight(frame,hFrame){<br />
  var tbl = frame.document.getElementById('tblMainFrame');<br />
  tbl.style.height = hFrame;<br />
}<br />
</code><br />
 <br />
主页面，在加载完毕（onload）、窗口大小调整(onresize)，以及iframe的加载完毕时，需调用:handleFrameLoad，代码如下:<br />
<code><br />
&lt;html&gt;<br />
  &lt;body onload="handleFrameLoad();" onResize="handleFrameLoad();"&gt;<br />
  &lt;iframe src="" id="mainFrame" name="mainFrame" border=0 width=100% height=100% frameborder="0" marginwidth="0" hspace="0" scrolling="no" onload="handleFrameLoad();"/&gt;<br />
  &lt;/body&gt;<br />
&lt;/html<br />
</code><br />
其他内嵌页如下(注：此处的iframe高度设为100%，其高度由父页面通过设置table&lt;tblMainFrame&gt;的高度来进行调整)：</p>
<p><code><br />
&lt;html&gt;<br />
  &lt;body class="body" style="overflow:hidden;margin:0px;padding:0px"&gt;<br />
    &lt;table width="100%" height="100%" id="tblMainFrame" border="0" align="center" cellpadding="0" cellspacing="0"&gt;<br />
      &lt;tr&gt;<br />
        &lt;td id='content' height=100%&gt;<br />
          &lt;iframe src="about:blank" width="100%" height="100%" name="moduleRight" id="moduleRight" frameborder="0" hspace="0"/&gt;<br />
        &lt;/td&gt;<br />
      &lt;/tr&gt;<br />
    &lt;/table&gt;<br />
  &lt;/body&gt;<br />
&lt;/html&gt;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/iframe/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

