??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲av中文无码,国产亚洲福利一区二区免费看 ,亚洲一级视频在线观看http://m.tkk7.com/yifeng/category/34094.html光是知道是不够的Q必要加以应用Q光是希望是不够的,非去做不可?/description>zh-cnFri, 21 Nov 2008 09:45:46 GMTFri, 21 Nov 2008 09:45:46 GMT60风声JS菜单?/title><link>http://m.tkk7.com/yifeng/archive/2008/11/21/241775.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Thu, 20 Nov 2008 16:30:00 GMT</pubDate><guid>http://m.tkk7.com/yifeng/archive/2008/11/21/241775.html</guid><wfw:comment>http://m.tkk7.com/yifeng/comments/241775.html</wfw:comment><comments>http://m.tkk7.com/yifeng/archive/2008/11/21/241775.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/yifeng/comments/commentRss/241775.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yifeng/services/trackbacks/241775.html</trackback:ping><description><![CDATA[<img height="475" alt="" src="http://m.tkk7.com/images/blogjava_net/yifeng/other/20081111093853.gif" width="465" border="0" /><br /> <br /> <br /> <p><strong>本程序ؓ无限U树形菜单提供一U方案。程序基?JavaScript/XHTML/CSS 标准实现Q适应q泛的服务器/览器环境?/strong></p> <p><strong>本程序支持丰富的功能/表现定制Q拥有表现和数据分离Q单面可以应用多个无限U菜单树Q多?U展开模式Q风格样式定义结构清晰、灵zd_{等Ҏ,演示可以见一斑?/strong></p> <p><strong>本程序在实现 1000 节点以上菜单树时效率下降明显Q请适当应用?br /> <br /> 下蝲地址Q?a title="MenuTree.rar" href="/Files/yifeng/Repository/MenuTree.rar">MenuTree.rar</a></strong></p> <img src ="http://m.tkk7.com/yifeng/aggbug/241775.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yifeng/" target="_blank">忆风</a> 2008-11-21 00:30 <a href="http://m.tkk7.com/yifeng/archive/2008/11/21/241775.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript正则表达式用详?/title><link>http://m.tkk7.com/yifeng/archive/2008/10/06/232585.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sun, 05 Oct 2008 17:22:00 GMT</pubDate><guid>http://m.tkk7.com/yifeng/archive/2008/10/06/232585.html</guid><wfw:comment>http://m.tkk7.com/yifeng/comments/232585.html</wfw:comment><comments>http://m.tkk7.com/yifeng/archive/2008/10/06/232585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/yifeng/comments/commentRss/232585.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yifeng/services/trackbacks/232585.html</trackback:ping><description><![CDATA[<p>?</p> <p>单的_正则表达式是一U可以用于模式匹配和替换的强有力的工兗其作用如下Q?<br /> 试字符串的某个模式。例如,可以对一个输入字W串q行试Q看在该字符串是否存在一个电话号码模式或一个信用卡L模式。这UCؓ数据有效性验证?<br /> 替换文本。可以在文档中用一个正则表辑ּ来标识特定文字,然后可以全部其删除Q或者替换ؓ别的文字?<br /> Ҏ模式匚w从字W串中提取一个子字符丌Ӏ可以用来在文本或输入字D中查找特定文字?</p> <p>基本语法 </p> <p>在对正则表达式的功能和作用有了初步的了解之后Q我们就来具体看一下正则表辑ּ的语法格式?<br /> 正则表达式的形式一般如下:  </p> <p>/love/  其中位于“/”定界W之间的部分是要在目标对象中q行匚w的模式。用户只要把希望查找匚w对象的模式内Ҏ?#8220;/”定界W之间即可。ؓ了能够用户更加灉|的定制模式内容,正则表达式提供了专门?#8220;元字W?#8221;。所谓元字符是指那些在正则表达式中hҎ意义的专用字W,可以用来规定其前导字W(即位于元字符前面的字W)在目标对象中的出现模式?<br /> 较ؓ常用的元字符包括Q?“+”Q?“*”Q以?“?”?/p> <p>“+”元字W规定其前导字符必须在目标对象中q箋出现一ơ或多次?br /> “*”元字W规定其前导字符必须在目标对象中出现零次或连l多ơ?br /> “?”元字W规定其前导对象必须在目标对象中q箋出现零次或一ơ?/p> <p>下面Q就让我们来看一下正则表辑ּ元字W的具体应用?</p> <p>/fo+/  因ؓ上述正则表达式中包含“+”元字W,表示可以与目标对象中?“fool”, “fo”, 或?“football”{在字母f后面q箋出现一个或多个字母o的字W串相匹配?</p> <p>/eg*/  因ؓ上述正则表达式中包含“*”元字W,表示可以与目标对象中?“easy”, “ego”, 或?“egg”{在字母e后面q箋出现零个或多个字母g的字W串相匹配?</p> <p>/Wil?/  因ؓ上述正则表达式中包含“Q?#8221;元字W,表示可以与目标对象中?“Win”, 或?#8220;Wilson”,{在字母i后面q箋出现零个或一个字母l的字W串相匹配?</p> <p>有时候不知道要匹配多字W。ؓ了能适应q种不确定性,正则表达式支持限定符的概c这些限定符可以指定正则表达式的一个给定组件必要出现多少ơ才能满_配?/p> <p>{n} n 是一个非负整数。匹配确定的 n ơ。例如,'o{2}' 不能匚w "Bob" 中的 'o'Q但是能匚w "food" 中的两个 o?/p> <p>{n,} n 是一个非负整数。至匹?n ơ。例如,'o{2,}' 不能匚w "Bob" 中的 'o'Q但能匹?"foooood" 中的所?o?o{1,}' {h?'o+'?o{0,}' 则等价于 'o*'?/p> <p>{n,m} m ?n 均ؓ非负整数Q其中n <= m。最匹?n ơ且最多匹?m ơ。例如,"o{1,3}" 匹?"fooooood" 中的前三?o?o{0,1}' {h?'o?'。请注意在逗号和两个数之间不能有空根{?/p> <p>除了元字W之外,用户q可以精指定模式在匚w对象中出现的频率。例如,/jim {2,6}/ 上述正则表达式规定字Wm可以在匹配对象中q箋出现2-6ơ,因此Q上q正则表辑ּ可以同jimmy或jimmmmmy{字W串相匹配?<br /> 在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字W的使用方式?<br /> </p> <div id="oaue2cu" class="code_title">代码</div> <div id="o4wwc4i" class="code_div"> <div id="yew4mww" class="dp-highlighter"> <div id="k2ke4yi" class="bar"></div> <ol class="dp-j"> <li id="ua4e442" class="alt"><span><span>\sQ用于匹配单个空格符Q包括tab键和换行W;    </span></span> <li><span>\SQ用于匹配除单个I格W之外的所有字W;    </span> <li id="yy6246s" class="alt"><span>\dQ用于匹配从</span><span id="4ssk4qe" class="number">0</span><span>?/span><span id="woceaw4" class="number">9</span><span>的数字;    </span> <li><span>\wQ用于匹配字母,数字或下划线字符Q?nbsp;   </span> <li id="o42qoeo" class="alt"><span>\WQ用于匹配所有与\w不匹配的字符Q?nbsp;   </span> <li><span>. Q用于匹配除换行W之外的所有字W?nbsp;   </span> </li> </ol> </div> </div> <br /> Q说明:我们可以把\s和\S以及\w和\W看作互ؓ逆运) <br /> 下面Q我们就通过实例看一下如何在正则表达式中使用上述元字W?<br /> /\s+/ 上述正则表达式可以用于匹配目标对象中的一个或多个I格字符?<br /> /\d000/ 如果我们手中有一份复杂的财务报表Q那么我们可以通过上述正则表达式轻而易丄查找到所有总额辑֍元的N?<br /> 除了我们以上所介绍的元字符之外Q正则表辑ּ中还h另外一U较为独特的专用字符Q即定位W。定位符用于规定匚w模式在目标对象中的出C|?较ؓ常用的定位符包括Q?“^”, “$”, “\b” 以及 “\B”?<br /> <div id="ik2sksi" class="code_title">代码</div> <div id="wgmosso" class="code_div"> <div id="oq4u24y" class="dp-highlighter"> <ol class="dp-j"> <li id="6o44ymk" class="alt"><span><span>“^”定位W规定匹配模式必d现在目标字符串的开?nbsp;  </span></span> <li><span>“$”定位W规定匹配模式必d现在目标对象的结?nbsp;  </span> <li id="me42iyg" class="alt"><span>“\b”定位W规定匹配模式必d现在目标字符串的开头或l尾的两个边界之一   </span> <li><span>“\B”定位W则规定匚w对象必须位于目标字符串的开头和l尾两个边界之内Q?nbsp;  </span> <li id="qgmo4ig" class="alt"><span>       卛_配对象既不能作ؓ目标字符串的开_也不能作为目标字W串的结?nbsp;  </span> </li> </ol> </div> </div> <br /> 同样Q我们也可以?#8220;^”?#8220;$”以及“\b”?#8220;\B”看作是互为逆运的两组定位W。D例来_ /^hell/ 因ؓ上述正则表达式中包含“^”定位W,所以可以与目标对象中以 “hell”, “hello”?#8220;hellhound”开头的字符串相匚w?/ar$/ 因ؓ上述正则表达式中包含“$”定位W,所以可以与目标对象中以 “car”, “bar”?“ar” l尾的字W串相匹配?/\bbom/ 因ؓ上述正则表达式模式以“\b”定位W开_所以可以与目标对象中以 “bomb”, ?“bom”开头的字符串相匚w?man\b/ 因ؓ上述正则表达式模式以“\b”定位W结,所以可以与目标对象中以 “human”, “woman”?“man”l尾的字W串相匹配?<br /> Z能够方便用户更加灉|的设定匹配模式,正则表达式允怋用者在匚w模式中指定某一个范围而不局限于具体的字W。例如: <br /> <div id="o4u4eeu" class="code_title">代码</div> <div id="4uq4q4e" class="code_div"> <div id="a4444os" class="dp-highlighter"> <div id="wwcgus4" class="bar"></div> <ol class="dp-j"> <li id="s2m4ys4" class="alt"><span><span>/[A-Z]/ 上述正则表达式将会与从A到Z范围内Q何一个大写字母相匚w?nbsp;  </span></span> <li><span>/[a-z]/ 上述正则表达式将会与从a到z范围内Q何一个小写字母相匚w?nbsp;   </span> <li id="6i2koem" class="alt"><span>/[</span><span id="me42c42" class="number">0</span><span>-</span><span id="ogwoq22" class="number">9</span><span>]/    上述正则表达式将会与?/span><span id="2yu4mwu" class="number">0</span><span>?/span><span id="w2wce2q" class="number">9</span><span>范围内Q何一个数字相匚w?nbsp;   </span> <li><span>/([a-z][A-Z][</span><span id="24aqii4" class="number">0</span><span>-</span><span id="wymo4c2" class="number">9</span><span>])+/ 上述正则表达式将会与M由字母和数字l成的字W串Q如 “aB0” {相匚w?nbsp;  </span> </li> </ol> </div> </div> <br /> q里需要提醒用h意的一点就是可以在正则表达式中使用 “()” 把字W串l合在一赗?#8220;()”W号包含的内容必d时出现在目标对象中。因此,上述正则表达式将无法与诸?“abc”{的字符串匹配,因ؓ“abc”中的最后一个字Wؓ字母而非数字?<br /> 如果我们希望在正则表辑ּ中实现类似编E逻辑中的“?#8221;q算Q在多个不同的模式中任选一个进行匹配的话,可以使用道W?“|”。例如:/to|too|2/ 上述正则表达式将会与目标对象中的 “to”, “too”, ?“2” 相匹配?<br /> 正则表达式中q有一个较为常用的q算W,卛_定符 “[^]”。与我们前文所介绍的定位符 “^” 不同Q否定符 “[^]”规定目标对象中不能存在模式中所规定的字W串。例如:/[^A-C]/ 上述字符串将会与目标对象中除AQBQ和C之外的Q何字W相匚w。一般来_?#8220;^”出现?“[]”内时p视做否定q算W;而当“^”位于“[]”之外Q或没有“[]”Ӟ则应当被视做定位W?<br /> 最后,当用户需要在正则表达式的模式中加入元字符Qƈ查找其匹配对象时Q可以用{义符“\”。例如:/Th\*/  上述正则表达式将会与目标对象中的“Th*”而非“The”{相匚w?<br /> 在构造正则表辑ּ之后Q就可以象数学表辑ּ一h求|也就是说Q可以从左至叛_ƈ按照一个优先序来求倹{优先如下Q?<br /> <div id="i24ga42" class="code_title">代码</div> <div id="cm4y4m4" class="bar"></div> <div> <ol> <li id="ama4446" class="alt"><span><span>\ 转义W?nbsp;  </span></span> <li><span>(), (?:), (?=), [] 圆括号和Ҏ?nbsp;  </span> <li id="2aswyuc" class="alt"><span>*, +, ?, {n}, {n,}, {n,m} 限定W?nbsp;  </span> <li><span>^, $, \anymetacharacter 位置和顺?nbsp;  </span> <li id="ck2wqyw" class="alt"><span>|“?#8221;操作</span> </li> </ol> </div> <p class="alt"></p> <p class="alt"><span style="font-size: 18pt">使用实例</span> <br /> 在JavaScript 1.2中带有一个功能强大的RegExp()对象Q可以用来进行正则表辑ּ的匹配操作。其中的test()Ҏ可以验目标对象中是否包含匚w模式Qƈ相应的返回true或false?<br /> 我们可以使用JavaScript~写以下脚本Q验证用戯入的邮g地址的有效性?<br /> </p> <div id="eekoy2k" class="code_title">代码</div> <div id="c2umoem" class="code_div"> <div id="2424442" class="dp-highlighter"> <div id="2oscoc4" class="bar"></div> <ol class="dp-xml"> <li id="ks4m4m4" class="alt"><span><span id="mw4m2i4" class="tag"><</span><span id="24gyc4c" class="tag-name">html</span><span id="aso4u44" class="tag">></span><span>    </span></span> <li><span id="meakw24" class="tag"><</span><span id="6qcm244" class="tag-name">head</span><span id="22keg2s" class="tag">></span><span>    </span> <li id="iuwg4my" class="alt"><span>  </span><span id="2ysu4cm" class="tag"><</span><span id="owa2ygg" class="tag-name">script</span><span> </span><span id="w244224" class="attribute">language</span><span>=</span><span id="64eg4wq" class="attribute-value">"Javascript1.2"</span><span id="2km4s4m" class="tag">></span><span>    </span> <li><span>     <!-- start hiding    </span> <li id="wo4quuq" class="alt"><span>     function verifyAddress(obj)    </span> <li><span>     {    </span> <li id="ogkuo2u" class="alt"><span>      var </span><span id="cmg4qiy" class="attribute">email</span><span> = </span><span id="uooim2m" class="attribute-value">obj</span><span>.email.value;    </span> <li><span>      var </span><span id="ysu44e4" class="attribute">pattern</span><span> =    </span> <li id="s2q4c44" class="alt"><span>/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;    </span> <li><span>      </span><span id="ygsmyq4" class="attribute">flag</span><span> = </span><span id="6wyc4is" class="attribute-value">pattern</span><span>.test(email);    </span> <li id="42mgqg2" class="alt"><span>      if(flag)    </span> <li><span>      {    </span> <li id="e4e44a6" class="alt"><span>       alert(“Your email address is correct!”);    </span> <li><span>       return true;    </span> <li id="ew244kc" class="alt"><span>      }    </span> <li><span>      else    </span> <li id="qs2ew4g" class="alt"><span>       {    </span> <li><span>        alert(“Please try again!”);    </span> <li id="2ya4w4i" class="alt"><span>        return false;    </span> <li><span>        }    </span> <li id="2wy4ewc" class="alt"><span>      }    </span> <li><span>     // stop hiding --</span><span id="mue2gso" class="tag">></span><span>    </span> <li id="aikoywm" class="alt"><span>    </span><span id="e2ew424" class="tag"></</span><span id="4y2ae4c" class="tag-name">script</span><span id="asug24y" class="tag">></span><span>    </span> <li><span>  </span><span id="q2ysus4" class="tag"></</span><span id="ccw444y" class="tag-name">head</span><span id="64kc4s4" class="tag">></span><span>    </span> <li id="o4eyagg" class="alt"><span>  </span><span id="24g2444" class="tag"><</span><span id="o2c46we" class="tag-name">body</span><span id="6wy4msa" class="tag">></span><span>    </span> <li><span>   </span><span id="m2umgem" class="tag"><</span><span id="a2ako2g" class="tag-name">form</span><span> </span><span id="24sw42w" class="attribute">onSubmit</span><span>=</span><span id="i4ueoo2" class="attribute-value">"return verifyAddress(this);"</span><span id="gmg4a4a" class="tag">></span><span>    </span> <li id="uq2e424" class="alt"><span>    </span><span id="s4a2kg4" class="tag"><</span><span id="k42c46w" class="tag-name">input</span><span> </span><span id="6i4se2o" class="attribute">name</span><span>=</span><span id="q444k4c" class="attribute-value">"email"</span><span> </span><span id="2k4o4w6" class="attribute">type</span><span>=</span><span id="644kokk" class="attribute-value">"text"</span><span id="o4uogec" class="tag">></span><span>    </span> <li><span>    </span><span id="auycouu" class="tag"><</span><span id="ycmya2s" class="tag-name">input</span><span> </span><span id="ouwgsa2" class="attribute">type</span><span>=</span><span id="iwyacai" class="attribute-value">"submit"</span><span id="22mysq4" class="tag">></span><span>    </span> <li id="wgimoe2" class="alt"><span>    </span><span id="4m4g2yi" class="tag"></</span><span id="64ke44o" class="tag-name">form</span><span id="uw24qwi" class="tag">></span><span>    </span> <li><span>  </span><span id="qa24k4k" class="tag"></</span><span id="q2oskk2" class="tag-name">body</span><span id="yasw4wg" class="tag">></span><span>    </span> <li id="me4yio2" class="alt"><span id="4u4ys4q" class="tag"></</span><span id="o444sg4" class="tag-name">html</span><span id="2m4moku" class="tag">></span><span>    </span> </li> </ol> </div> </div> <p> </p> <p><span style="font-size: 18pt">正则表达式对?/span> <br /> 本对象包含正则表辑ּ模式以及表明如何应用模式的标志?<br /> </p> <div id="giceww2" class="code_title">代码</div> <div id="ewga44e" class="code_div"> <div id="2gcwqga" class="dp-highlighter"> <div id="24u44ge" class="bar"></div> <ol class="dp-j"> <li id="w2e4aw4" class="alt"><span><span>语法 </span><span id="2a44ese" class="number">1</span><span> re = /pattern/[flags]   </span></span> <li><span>语法 </span><span id="2gueqoy" class="number">2</span><span> re = </span><span id="goqkoum" class="keyword">new</span><span> RegExp(</span><span id="kk4e44w" class="string">"pattern"</span><span>,[</span><span id="6y4yq4c" class="string">"flags"</span><span>])    </span> </li> </ol> </div> </div> <br /> 参数 <br /> re <br /> 必选项。将要赋gؓ正则表达式模式的变量名? <p>Pattern <br /> 必选项。要使用的正则表辑ּ模式。如果用语?1Q用 "/" 字符分隔模式。如果用语法 2Q用引号模式引h?</p> <p>Flags <br /> 可选项。如果用语?2 要用引号?flag 引v来。标志可以组合用,可用的有Q?<br /> </p> <div id="q22u4em" class="code_title">代码</div> <div id="6uak4y4" class="code_div"> <div id="6uk4u4w" class="dp-highlighter"> <ol class="dp-j"> <li id="y4w4agq" class="alt"><span><span>g Q全文查扑և现的所?patternQ?nbsp;   </span></span> <li><span>i Q忽略大写Q?nbsp;   </span> <li id="simgyy2" class="alt"><span>m Q多行查找)    </span> </li> </ol> </div> </div> <p><span style="font-size: 18pt">CZ</span> <br /> 下面的示例创Z个包含正则表辑ּ模式及相x志的对象(re)Q向您演C正则表辑ּ对象的用法。在本例中,作ؓl果的正则表辑ּ对象又用?match Ҏ中: <br /> </p> <div id="k24s4ym" class="code_title">代码</div> <div id="6mgyaas" class="code_div"> <div id="ewyyuag" class="dp-highlighter"> <div id="m24uwek" class="bar"></div> <ol class="dp-j"> <li id="isco2ms" class="alt"><span><span>function MatchDemo()   </span></span> <li><span>{   </span> <li id="oo2yy2q" class="alt"><span>var r, re; </span><span id="ikew2cc" class="comment">// 声明变量?</span><span>  </span> <li><span>var s = </span><span id="qac2qo4" class="string">"The rain in Spain falls mainly in the plain"</span><span>;   </span> <li id="222yigw" class="alt"><span>re = </span><span id="24se4sg" class="keyword">new</span><span> RegExp(</span><span id="sugi242" class="string">"ain"</span><span>,</span><span id="44i4ccy" class="string">"g"</span><span>); </span><span id="ow4gk44" class="comment">// 创徏正则表达式对象?</span><span>  </span> <li><span>r = s.match(re); </span><span id="24kusa4" class="comment">// 在字W串 s 中查扑֌配?</span><span>  </span> <li id="kug6uiq" class="alt"><span id="o64km4o" class="keyword">return</span><span>(r);    </span> <li><span>}   </span>   </li> </ol> </div> </div> <p>q回| ain,ain,ain,ain\\ <br /> 属?lastIndex 属?| source 属性\\ <br /> Ҏ compile Ҏ | exec Ҏ | test Ҏ\\ <br /> 要求 版本 3\\ <br /> 请参?RegExp 对象 | 正则表达式语?| String 对象\\</p> <p><span style="font-size: 18pt">exec Ҏ</span> <br /> 用正则表辑ּ模式在字W串中运行查找,q返回包含该查找l果的一个数l?<br /> rgExp.exec(str)</p> <p>参数</p> <p>rgExp <br /> 必选项。包含正则表辑ּ模式和可用标志的正则表达式对象?</p> <p>str <br /> 必选项。要在其中执行查扄 String 对象或字W串文字?</p> <p>说明\\ <br /> 如果 exec Ҏ没有扑ֈ匚wQ则它返?null。如果它扑ֈ匚wQ则 exec Ҏq回一个数l,q且更新全局 RegExp 对象的属性,以反映匹配结果。数l的0元素包含了完整的匚wQ而第1到n元素中包含的是匹配中出现的Q意一个子匚w。这相当于没有设|全局标志 (g) ?match Ҏ?<br /> 如果为正则表辑ּ讄了全局标志Qexec 从以 lastIndex 的值指C的位置开始查找。如果没有设|全局标志Qexec 忽略 lastIndex 的|从字W串的v始位|开始搜索?/p> <p>exec Ҏq回的数l有三个属性,分别?input、index ?lastIndex。Input 属性包含了整个被查扄字符丌ӀIndex 属性中包含了整个被查找字符串中被匹配的子字W串的位|。LastIndex 属性中包含了匹配中最后一个字W的下一个位|?/p> <p>CZ\\ <br /> 下面的例子D例说明了 exec Ҏ的用法: <br /> </p> <div id="w4u2q4y" class="code_title">代码</div> <div id="6c4mowe" class="code_div"> <div id="wgiew2q" class="dp-highlighter"> <div id="og244mk" class="bar"></div> <ol class="dp-j"> <li id="cce2sq4" class="alt"><span><span>function RegExpTest()   </span></span> <li><span>{   </span> <li id="e244ig4" class="alt"><span>var ver = Number(ScriptEngineMajorVersion() + </span><span id="we2gk44" class="string">"."</span><span> + ScriptEngineMinorVersion())   </span> <li><span id="s4qmgwm" class="keyword">if</span><span> (ver >= </span><span id="mm4gi44" class="number">5.5</span><span>){ </span><span id="2kmgkq4" class="comment">// 试 JScript 的版本?</span><span>  </span> <li id="wmq4ckg" class="alt"><span>var src = </span><span id="2gskmmk" class="string">"The rain in Spain falls mainly in the plain."</span><span>;   </span> <li><span>var re = /\w+/g; </span><span id="siuy2ms" class="comment">// 创徏正则表达式模式?</span><span>  </span> <li id="qa444sk" class="alt"><span>var arr;   </span> <li><span id="o2c4s42" class="keyword">while</span><span> ((arr = re.exec(src)) != </span><span id="2w4244g" class="keyword">null</span><span>)   </span> <li id="g2y44c4" class="alt"><span>document.write(arr.index + </span><span id="ga444mk" class="string">"-"</span><span> + arr.lastIndex + arr + </span><span id="gyacwes" class="string">"\t"</span><span>);   </span> <li><span>}   </span> <li id="s4gugou" class="alt"><span id="qikeg24" class="keyword">else</span><span>{   </span> <li><span>alert(</span><span id="oicuk2g" class="string">"请?JScript 的更新版?</span><span>);   </span> <li id="2ogkc4o" class="alt"><span>}   </span> <li><span>}   </span> </li> </ol> </div> </div> <p> </p> <p>q回|0-3The 4-8rain 9-11in 12-17Spain 18-23falls 24-30mainly 31-33in 34-37the 38-43plain</p> <p>test Ҏ\\ <br /> q回一?Boolean |它指出在被查扄字符串中是否存在模式?<br /> rgexp.test(str) </p> <p>参数\\ <br /> rgexp <br /> 必选项。包含正则表辑ּ模式或可用标志的正则表达式对象?</p> <p>str <br /> 必选项。要在其上测试查扄字符丌Ӏ?</p> <p>说明 <br /> test Ҏ查在字符串中是否存在一个模式,如果存在则返?trueQ否则就q回 false?<br /> 全局 RegExp 对象的属性不?test Ҏ来修攏V?/p> <p>CZ <br /> 下面的例子D例说明了 test Ҏ的用法: <br /> </p> <div id="umeiuqo" class="code_title">代码</div> <div id="uceq2qo" class="code_div"> <div id="ka44ymm" class="dp-highlighter"> <div id="acmis2s" class="bar"></div> <ol class="dp-j"> <li id="icu4kgg" class="alt"><span><span>function TestDemo(re, s)   </span></span> <li><span>{   </span> <li id="iqkwqow" class="alt"><span>var s1; </span><span id="ecgiaaw" class="comment">// 声明变量?</span><span>  </span> <li><span id="wqako2e" class="comment">// 查字W串是否存在正则表达式?</span><span>  </span> <li id="aaeoq44" class="alt"><span id="wm2c444" class="keyword">if</span><span> (re.test(s)) </span><span id="weqsmsk" class="comment">// 试是否存在?</span><span>  </span> <li><span>s1 = </span><span id="m244e4m" class="string">" contains "</span><span>; </span><span id="2426ig4" class="comment">// s 包含模式?</span><span>  </span> <li id="moice24" class="alt"><span id="24mqsgg" class="keyword">else</span><span>  </span> <li><span>s1 = </span><span id="ke4y44i" class="string">" does not contain "</span><span>; </span><span id="iq224ks" class="comment">// s 不包含模式?</span><span>  </span> <li id="isewawe" class="alt"><span id="2c4asq4" class="keyword">return</span><span>(</span><span id="6uuw444" class="string">"'"</span><span> + s + </span><span id="2k4gsqo" class="string">"'"</span><span> + s1 + </span><span id="yq44yw4" class="string">"'"</span><span>+ re.source + </span><span id="mo4k4om" class="string">"'"</span><span>); </span><span id="2segiyi" class="comment">// q回字符丌Ӏ?</span><span>  </span> <li><span>}   </span> </li> </ol> </div> </div> <p> </p> <p>函数调用Qdocument.write (TestDemo(/ain+/ ,"The rain in Spain falls mainly in the plain."));</p> <p>q回|'The rain in Spain falls mainly in the plain.' contains 'ain+'</p> <p><span style="font-size: 18pt">match Ҏ</span> <br /> 使用正则表达式模式对字符串执行查找,q将包含查找的结果作为数l返回。\\ <br /> stringObj.match(rgExp) </p> <p>参数\\ <br /> stringObj <br /> 必选项。对其进行查扄 String 对象或字W串文字?</p> <p>rgExp <br /> 必选项。ؓ包含正则表达式模式和可用标志的正则表辑ּ对象。也可以是包含正则表辑ּ模式和可用标志的变量名或字符串文字?</p> <p>说明\\ <br /> 如果 match Ҏ没有扑ֈ匚wQ返?null。如果找到匹配返回一个数lƈ且更新全局 RegExp 对象的属性以反映匚wl果?<br /> match Ҏq回的数l有三个属性:input、index ?lastIndex。Input 属性包含整个的被查扑֭W串。Index 属性包含了在整个被查找字符串中匚w的子字符串的位置。LastIndex 属性包含了最后一ơ匹配中最后一个字W的下一个位|?<br /> 如果没有讄全局标志 (g)Q数l的 0 元素包含整个匚wQ而第 1 ?n 元素包含了匹配中曑և现过的Q一个子匚w。这相当于没有设|全局标志?exec Ҏ。如果设|了全局标志Q元?0 ?n 中包含所有匹配?/p> <p>CZ\\ <br /> 下面的示例演CZmatch Ҏ的用法: <br /> </p> <div id="qq244oc" class="code_title">代码</div> <div id="2kw24uu" class="code_div"> <div id="c2ce4s4" class="dp-highlighter"> <div id="isoi444" class="bar"></div> <ol class="dp-j"> <li id="m4uo4ui" class="alt"><span><span>function MatchDemo()   </span></span> <li><span>{   </span> <li id="s4o2ws2" class="alt"><span>var r, re; </span><span id="a4ga4ge" class="comment">// 声明变量?</span><span>  </span> <li><span>var s = </span><span id="244smsi" class="string">"The rain in Spain falls mainly in the plain"</span><span>;   </span> <li id="eo2qag4" class="alt"><span>re = /ain/i; </span><span id="2kossi4" class="comment">// 创徏正则表达式模式?</span><span>  </span> <li><span>r = s.match(re); </span><span id="6ke4a4a" class="comment">// 试匚w搜烦字符丌Ӏ?</span><span>  </span> <li id="qq2icac" class="alt"><span id="2w4eyyi" class="keyword">return</span><span>(r); </span><span id="6mmyiie" class="comment">// q回W一ơ出?"ain" 的地斏V?</span><span>  </span> <li><span>}   </span> </li> </ol> </div> </div> <br /> q回|ain   <p>本示例说明带 g 标志讄?match Ҏ的用法?<br /> </p> <div id="csicmsa" class="code_title">代码</div> <div id="oq2gi44" class="code_div"> <div id="ues2ea4" class="dp-highlighter"> <div id="6i4sus2" class="bar"></div> <ol class="dp-j"> <li id="aq4qk2m" class="alt"><span><span>function MatchDemo()   </span></span> <li><span>{   </span> <li id="y24mqwk" class="alt"><span>var r, re; </span><span id="y244o44" class="comment">// 声明变量?</span><span>  </span> <li><span>var s = </span><span id="2a44k4k" class="string">"The rain in Spain falls mainly in the plain"</span><span>;   </span> <li id="eeseo2o" class="alt"><span>re = /ain/ig; </span><span id="yqe244m" class="comment">// 创徏正则表达式模式?</span><span>  </span> <li><span>r = s.match(re); </span><span id="is2e4sy" class="comment">// 试d配搜索字W串?</span><span>  </span> <li id="qiyi2wk" class="alt"><span id="ew4gkio" class="keyword">return</span><span>(r); </span><span id="yom4wu4" class="comment">// q回的数l包含了所?"ain"  </span><span>  </span> <li><span id="aco24k4" class="comment">// 出现的四个匹配?</span><span>  </span> <li id="mc2o4ca" class="alt"><span>}   </span> </li> </ol> </div> </div> <br /> q回|ain,ain,ain,ain <p>上面几行代码演示了字W串文字?match Ҏ的用法?<br /> </p> <div id="wy2ke44" class="code_title">代码</div> <div id="cwkmok2" class="code_div"> <div id="2mqa4q4" class="dp-highlighter"> <div id="q44me4q" class="bar"></div> <ol class="dp-j"> <li id="eoia24u" class="alt"><span><span>var r, re = </span><span id="y4q4444" class="string">"Spain"</span><span>;   </span></span> <li><span>r = </span><span id="akkooo2" class="string">"The rain in Spain"</span><span>.replace(re, </span><span id="g2oisys" class="string">"Canada"</span><span>);   </span> <li id="e2uoq44" class="alt"><span id="4g44oks" class="keyword">return</span><span> r;   </span> </li> </ol> </div> </div> <br /> q回|The rain in Canada <p><span style="font-size: 18pt">search Ҏ</span> <br /> q回与正则表辑ּ查找内容匚w的第一个子字符串的位置?/p> <p>stringObj.search(rgExp)</p> <p>参数\\ <br /> stringObj <br /> 必选项。要在其上进行查扄 String 对象或字W串文字?</p> <p>rgExp <br /> 必选项。包含正则表辑ּ模式和可用标志的正则表达式对象?</p> <p>说明</p> <p>search Ҏ指明是否存在相应的匹配。如果找C个匹配,search Ҏ返回一个整数|指明q个匚w距离字符串开始的偏移位置。如果没有找到匹配,则返?-1?/p> <p>CZ\\ <br /> 下面的示例演CZ search Ҏ的用法?<br /> </p> <div id="iau2oua" class="code_title">代码</div> <div id="egiswsq" class="code_div"> <div id="w2kmqw2" class="dp-highlighter"> <div id="2yy424a" class="bar"></div> <ol class="dp-j"> <li id="o24o4k4" class="alt"><span><span>function SearchDemo()   </span></span> <li><span>{   </span> <li id="yiccom2" class="alt"><span>var r, re; </span><span id="2s4ko44" class="comment">// 声明变量?</span><span>  </span> <li><span>var s = </span><span id="24oo42y" class="string">"The rain in Spain falls mainly in the plain."</span><span>;   </span> <li id="mmgsus2" class="alt"><span>re = /falls/i; </span><span id="ku24wes" class="comment">// 创徏正则表达式模式?</span><span>  </span> <li><span>r = s.search(re); </span><span id="44s424s" class="comment">// 查找字符丌Ӏ?</span><span>  </span> <li id="m44uoea" class="alt"><span id="km2g4ym" class="keyword">return</span><span>(r); </span><span id="o24eww4" class="comment">// q回 Boolean l果?</span><span>  </span> <li><span>}   </span> </li> </ol> </div> </div> <br /> q回|18 <br /> <br /> <br /> <p><span style="font-size: 18pt">正则表达式语?/span> <br /> 一个正则表辑ּ是由普通字W(例如字符 a ?zQ以及特D字W(UCؓ元字W)l成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符丌Ӏ正则表辑ּ作ؓ一个模板,某个字W模式与所搜烦的字W串q行匚w?/p> <p>q里有一些可能会遇到的正则表辑ּCZQ?<br /> </p> <div id="iswgqqm" class="code_title">代码</div> <div id="asuwigw" class="code_div"> <div id="egiims2" class="dp-highlighter"> <div id="mmggiyo" class="bar"></div> <ol class="dp-j"> <li id="c2swg4q" class="alt"><span><span>JScript VBScript 匚w    </span></span> <li><span>/^\[ \t]*$/ </span><span id="ii2mmms" class="string">"^\[ \t]*$"</span><span> 匚w一个空白行?nbsp;   </span> <li id="oycc2ko" class="alt"><span>/\d{</span><span id="gasm2u4" class="number">2</span><span>}-\d{</span><span id="uwga2ye" class="number">5</span><span>}/ </span><span id="4s4aaqq" class="string">"\d{2}-\d{5}"</span><span> 验证一个ID L是否׃?/span><span id="wwau2ao" class="number">2</span><span>位数字,一个连字符以及一?/span><span id="qa4ycai" class="number">5</span><span>位数字组成?nbsp;   </span> <li><span>/<(.*)>.*<\/\</span><span id="cko244e" class="number">1</span><span>>/ </span><span id="24ya4ci" class="string">"<(.*)>.*<\/\1>"</span><span> 匚w一?HTML 标记?nbsp;   </span>   </li> </ol> </div> </div> <p>下表是元字符及其在正则表辑ּ上下文中的行为的一个完整列表:</p> <p>字符 描述 <br /> \ 下一个字W标Cؓ一个特D字W、或一个原义字W、或一?后向引用、或一个八q制转义W。例如,'n' 匚w字符 "n"?\n' 匚w一个换行符。序?'\\' 匚w "\" ?"\(" 则匹?"("?</p> <p>^ 匚w输入字符串的开始位|。如果设|了 RegExp 对象?Multiline 属性,^ 也匹?'\n' ?'\r' 之后的位|?</p> <p>$ 匚w输入字符串的l束位置。如果设|了RegExp 对象?Multiline 属性,$ 也匹?'\n' ?'\r' 之前的位|?</p> <p>* 匚w前面的子表达式零ơ或多次。例如,zo* 能匹?"z" 以及 "zoo"?* {h于{0,}?</p> <p>+ 匚w前面的子表达式一ơ或多次。例如,'zo+' 能匹?"zo" 以及 "zoo"Q但不能匚w "z"? {h?{1,}?</p> <p>? 匚w前面的子表达式零ơ或一ơ。例如,"do(es)?" 可以匚w "do" ?"does" 中的"do" ? {h?{0,1}?</p> <p>{n} n 是一个非负整数。匹配确定的 n ơ。例如,'o{2}' 不能匚w "Bob" 中的 'o'Q但是能匚w "food" 中的两个 o?</p> <p>{n,} n 是一个非负整数。至匹配n ơ。例如,'o{2,}' 不能匚w "Bob" 中的 'o'Q但能匹?"foooood" 中的所?o?o{1,}' {h?'o+'?o{0,}' 则等价于 'o*'?</p> <p>{n,m} m ?n 均ؓ非负整数Q其中n <= m。最匹?n ơ且最多匹?m ơ。刘Q?"o{1,3}" 匹?"fooooood" 中的前三?o?o{0,1}' {h?'o?'。请注意在逗号和两个数之间不能有空根{?</p> <p>? 当该字符紧跟在Q何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面Ӟ匚w模式是非贪婪的。非贪婪模式可能少的匹配所搜烦的字W串Q而默认的贪婪模式则尽可能多的匚w所搜烦的字W串。例如,对于字符?"oooo"Q?o+?' 匹配单?"o"Q?'o+' 匹配所?'o'?</p> <p>. 匚w?"\n" 之外的Q何单个字W。要匚w包括 '\n' 在内的Q何字W,请用象 '[.\n]' 的模式?<br /> (pattern) 匚wpattern q获取这一匚w。所获取的匹配可以从产生?Matches 集合得到Q在VBScript 中?SubMatches 集合Q在JScript 中则使用 $0…$9 属性。要匚w圆括号字W,请?'\(' ?'\)'?</p> <p>(?:pattern) 匚w pattern 但不获取匚wl果Q也是说这是一个非获取匚wQ不q行存储供以后用。这在?"? 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 是一个比 'industry|industries' 更简略的表达式?</p> <p>(?=pattern) 正向预查Q在M匚w pattern 的字W串开始处匚w查找字符丌Ӏ这是一个非获取匚wQ也是_该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹?"Windows 2000" 中的 "Windows" Q但不能匚w "Windows 3.1" 中的 "Windows"。预查不消耗字W,也就是说Q在一个匹配发生后Q在最后一ơ匹配之后立卛_始下一ơ匹配的搜烦Q而不是从包含预查的字W之后开始?</p> <p>(?!pattern) 负向预查Q在M不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字W串开始处匚w查找字符丌Ӏ这是一个非获取匚wQ也是_该匹配不需要获取供以后使用。例?Windows (?!95|98|NT|2000)' 能匹?"Windows 3.1" 中的 "Windows"Q但不能匚w "Windows 2000" 中的 "Windows"。预查不消耗字W,也就是说Q在一个匹配发生后Q在最后一ơ匹配之后立卛_始下一ơ匹配的搜烦Q而不是从包含预查的字W之后开?</p> <p>x|y 匚w x ?y。例如,'z|food' 能匹?"z" ?"food"?(z|f)ood' 则匹?"zood" ?"food"?</p> <p>[xyz] 字符集合。匹配所包含的Q意一个字W。例如, '[abc]' 可以匚w "plain" 中的 'a'?</p> <p>[^xyz] 负值字W集合。匹配未包含的Q意字W。例如, '[^abc]' 可以匚w "plain" 中的'p'?</p> <p>[a-z] 字符范围。匹配指定范围内的Q意字W。例如,'[a-z]' 可以匚w 'a' ?'z' 范围内的L写字母字符?</p> <p>[^a-z] 负值字W范围。匹配Q何不在指定范围内的Q意字W。例如,'[^a-z]' 可以匚wM不在 'a' ?'z' 范围内的L字符?</p> <p>\b 匚w一个单词边界,也就是指单词和空格间的位|。例如, 'er\b' 可以匚w"never" 中的 'er'Q但不能匚w "verb" 中的 'er'?</p> <p>\B 匚w非单词边界?er\B' 能匹?"verb" 中的 'er'Q但不能匚w "never" 中的 'er'?</p> <p>\cx 匚w由x指明的控制字W。例如, \cM 匚w一?Control-M 或回车符?x 的值必Mؓ A-Z ?a-z 之一。否则,?c 视ؓ一个原义的 'c' 字符?</p> <p>\d 匚w一个数字字W。等价于 [0-9]?</p> <p>\D 匚w一个非数字字符。等价于 [^0-9]?</p> <p>\f 匚w一个换늬。等价于 \x0c ?\cL?</p> <p>\n 匚w一个换行符。等价于 \x0a ?\cJ?</p> <p>\r 匚w一个回车符。等价于 \x0d ?\cM?</p> <p>\s 匚wMI白字符Q包括空根{制表符、换늬{等。等价于 [ \f\n\r\t\v]?</p> <p>\S 匚wM非空白字W。等价于 [^ \f\n\r\t\v]?</p> <p>\t 匚w一个制表符。等价于 \x09 ?\cI?</p> <p>\v 匚w一个垂直制表符。等价于 \x0b ?\cK?</p> <p>\w 匚w包括下划U的M单词字符。等价于'[A-Za-z0-9_]'?</p> <p>\W 匚wM非单词字W。等价于 '[^A-Za-z0-9_]'?</p> <p>\xn 匚w nQ其?n 为十六进制{义倹{十六进制{义值必Mؓ定的两个数字长。例如, '\x41' 匚w "A"?\x041' 则等价于 '\x04' & "1"。正则表辑ּ中可以?ASCII ~码? </p> <p>\num 匚w numQ其?num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匚w两个q箋的相同字W?</p> <p>\n 标识一个八q制转义值或一个后向引用。如?\n 之前臛_ n 个获取的子表辑ּQ则 n 为后向引用。否则,如果 n 为八q制数字 (0-7)Q则 n Z个八q制转义倹{?</p> <p>\nm 标识一个八q制转义值或一个后向引用。如?\nm 之前臛_有is preceded by at least nm 个获取得子表辑ּQ则 nm 为后向引用。如?\nm 之前臛_?n 个获取,?n Z个后跟文?m 的后向引用。如果前面的条g都不满Q若 n ?m 均ؓ八进制数?(0-7)Q则 \nm 匹配八q制转义?nm?</p> <p>\nml 如果 n 为八q制数字 (0-3)Q且 m ?l 均ؓ八进制数?(0-7)Q则匚w八进制{义?nml?</p> <p>\un 匚w nQ其?n 是一个用四个十六q制数字表示?Unicode 字符。例如, \u00A9 匚w版权W号 (?)?</p> <p><span style="font-size: 18pt">优先权顺?/span> <br /> 在构造正则表辑ּ之后Q就可以象数学表辑ּ一h求|也就是说Q可以从左至叛_ƈ按照一个优先权序来求倹{?</p> <p>下表从最高优先到最低优先列出各种正则表达式操作符的优先权序Q?<br /> </p> <div id="kuo24ks" class="code_title">代码</div> <div id="o4mqwcc" class="code_div"> <div id="u4y444q" class="dp-highlighter"> <ol class="dp-j"> <li id="644mou4" class="alt"><span><span>操作W?描述    </span></span> <li><span>\ 转义W?nbsp;   </span> <li id="a24aa44" class="alt"><span>(), (?:), (?=), [] 圆括号和Ҏ?nbsp;   </span> <li><span>*, +, ?, {n}, {n,}, {n,m} 限定W?nbsp;   </span> <li id="624og4k" class="alt"><span>^, $, \anymetacharacter 位置和顺?nbsp;   </span> <li><span>| “?#8221;操作    </span> </li> </ol> </div> </div> <p> </p> <p>普通字W?/p> <p>普通字W由所有那些未昑ּ指定为元字符的打印和非打印字W组成。这包括所有的大写和小写字母字W,所有数字,所有标点符号以及一些符受?</p> <p>最单的正则表达式是一个单独的普通字W,可以匚w所搜烦字符串中的该字符本n。例如,单字W模?'A' 可以匚w所搜烦字符串中M位置出现的字?'A'。这里有一些单字符正则表达式模式的CZQ?<br /> </p> <div id="k2g22s4" class="code_title">代码</div> <div id="ug2k4aw" class="code_div"> <div id="6o4yky4" class="dp-highlighter"> <div id="e2s4ggo" class="bar"></div> <ol class="dp-j"> <li id="uq244i4" class="alt"><span><span>/a/   </span></span> <li><span>/</span><span id="yqku4ym" class="number">7</span><span>/   </span> <li id="ke44mu4" class="alt"><span>/M/   </span> </li> </ol> </div> </div> <br /> {h?VBScript 单字W正则表辑ּ为: <br /> <div id="kco2ea4" class="code_title">代码</div> <div id="4kyso24" class="code_div"> <div id="me2o44i" class="dp-highlighter"> <div id="qq24wsm" class="bar"></div> <ol class="dp-j"> <li id="24ogesw" class="alt"><span><span id="2uwwaq4" class="string">"a"</span><span>  </span></span> <li><span id="oyqk4ms" class="string">"7"</span><span>  </span> <li id="a24iaq6" class="alt"><span id="gsm4ye4" class="string">"M"</span><span>  </span> </li> </ol> </div> </div> <br /> 可以多个单字符l合在一起得C个较大的表达式。例如,下面?JScript 正则表达式不是别的,是通过l合单字W表辑ּ 'a'?7'以及 'M' 所创徏出来的一个表辑ּ? <p>/a7M/ <br /> {h?VBScript 表达式ؓQ?/p> <p>"a7M" <br /> h意这里没有连接操作符。所需要做的就是将一个字W放在了另一个字W后面?/p> <img src ="http://m.tkk7.com/yifeng/aggbug/232585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yifeng/" target="_blank">忆风</a> 2008-10-06 01:22 <a href="http://m.tkk7.com/yifeng/archive/2008/10/06/232585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JavaScripth框架子页面的8U方?/title><link>http://m.tkk7.com/yifeng/archive/2008/10/06/232584.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sun, 05 Oct 2008 17:15:00 GMT</pubDate><guid>http://m.tkk7.com/yifeng/archive/2008/10/06/232584.html</guid><wfw:comment>http://m.tkk7.com/yifeng/comments/232584.html</wfw:comment><comments>http://m.tkk7.com/yifeng/archive/2008/10/06/232584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/yifeng/comments/commentRss/232584.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yifeng/services/trackbacks/232584.html</trackback:ping><description><![CDATA[先来看一个简单的例子Q?br /> 下面以三个页面分别命名ؓframe.html、top.html、bottom.htmlZ来具体说明如何做?<br /> <br /> frame.html ׃(top.html)?bottom.html)两个面l成Q代码如下:<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff"><!</span><span style="color: #ff00ff">DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">HTML</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">></span><span style="color: #000000"> frame </span><span style="color: #0000ff"></</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"></</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">></span><span style="color: #000000"> <br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">frameset </span><span style="color: #ff0000">rows</span><span style="color: #0000ff">="50%,50%"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">frame </span><span style="color: #ff0000">name</span><span style="color: #0000ff">=top  </span><span style="color: #ff0000">src</span><span style="color: #0000ff">="top.html"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">frame </span><span style="color: #ff0000">name</span><span style="color: #0000ff">=bottom  </span><span style="color: #ff0000">src</span><span style="color: #0000ff">="bottom.html"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"></</span><span style="color: #800000">frameset</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"></</span><span style="color: #800000">HTML</span><span style="color: #0000ff">></span></div> <br /> <p>现在假设top.html (即上面的面) 有七个button来实现对bottom.html (即下面的面) 的刷斎ͼ可以用以下七U语句,哪个好用自己看着办了?/p> <p>语句1. window.parent.frames[1].location.reload();<br /> 语句2. window.parent.frames.bottom.location.reload();<br /> 语句3. window.parent.frames["bottom"].location.reload();<br /> 语句4. window.parent.frames.item(1).location.reload();<br /> 语句5. window.parent.frames.item('bottom').location.reload();<br /> 语句6. window.parent.bottom.location.reload();<br /> 语句7. window.parent['bottom'].location.reload();<br /> <br /> top.html 面的代码如下:</p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff"><!</span><span style="color: #ff00ff">DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">HTML</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /> </span><span style="color: #0000ff"><</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />  </span><span style="color: #0000ff"><</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">></span><span style="color: #000000"> top.html </span><span style="color: #0000ff"></</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /> </span><span style="color: #0000ff"></</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">BODY</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">input </span><span style="color: #ff0000">type</span><span style="color: #0000ff">=button </span><span style="color: #ff0000">value</span><span style="color: #0000ff">="h1"</span><span style="color: #ff0000"> onclick</span><span style="color: #0000ff">="window.parent.frames[1].location.reload()"</span><span style="color: #0000ff">><</span><span style="color: #800000">br</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">input </span><span style="color: #ff0000">type</span><span style="color: #0000ff">=button </span><span style="color: #ff0000">value</span><span style="color: #0000ff">="h2"</span><span style="color: #ff0000"> onclick</span><span style="color: #0000ff">="window.parent.frames.bottom.location.reload()"</span><span style="color: #0000ff">><</span><span style="color: #800000">br</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">input </span><span style="color: #ff0000">type</span><span style="color: #0000ff">=button </span><span style="color: #ff0000">value</span><span style="color: #0000ff">="h3"</span><span style="color: #ff0000"> onclick</span><span style="color: #0000ff">="window.parent.frames['bottom'].location.reload()"</span><span style="color: #0000ff">><</span><span style="color: #800000">br</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">input </span><span style="color: #ff0000">type</span><span style="color: #0000ff">=button </span><span style="color: #ff0000">value</span><span style="color: #0000ff">="h4"</span><span style="color: #ff0000"> onclick</span><span style="color: #0000ff">="window.parent.frames.item(1).location.reload()"</span><span style="color: #0000ff">><</span><span style="color: #800000">br</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">input </span><span style="color: #ff0000">type</span><span style="color: #0000ff">=button </span><span style="color: #ff0000">value</span><span style="color: #0000ff">="h5"</span><span style="color: #ff0000"> onclick</span><span style="color: #0000ff">="window.parent.frames.item('bottom').location.reload()"</span><span style="color: #0000ff">><</span><span style="color: #800000">br</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">input </span><span style="color: #ff0000">type</span><span style="color: #0000ff">=button </span><span style="color: #ff0000">value</span><span style="color: #0000ff">="h6"</span><span style="color: #ff0000"> onclick</span><span style="color: #0000ff">="window.parent.bottom.location.reload()"</span><span style="color: #0000ff">><</span><span style="color: #800000">br</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">input </span><span style="color: #ff0000">type</span><span style="color: #0000ff">=button </span><span style="color: #ff0000">value</span><span style="color: #0000ff">="h7"</span><span style="color: #ff0000"> onclick</span><span style="color: #0000ff">="window.parent['bottom'].location.reload()"</span><span style="color: #0000ff">><</span><span style="color: #800000">br</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"></</span><span style="color: #800000">BODY</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"></</span><span style="color: #800000">HTML</span><span style="color: #0000ff">></span></div> <br /> 下面是bottom.html面源代码,Z证明下方面的确被刷CQ在装蝲完页面弹Z个对话框?br /> <br /> bottom.html 面的代码如下:<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff"><!</span><span style="color: #ff00ff">DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">HTML</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /> </span><span style="color: #0000ff"><</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />  </span><span style="color: #0000ff"><</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">></span><span style="color: #000000"> bottom.html </span><span style="color: #0000ff"></</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /> </span><span style="color: #0000ff"></</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">BODY </span><span style="color: #ff0000">onload</span><span style="color: #0000ff">="alert('我被加蝲了!')"</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"><</span><span style="color: #800000">h1</span><span style="color: #0000ff">></span><span style="color: #000000">This is the content in bottom.html.</span><span style="color: #0000ff"></</span><span style="color: #800000">h1</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"></</span><span style="color: #800000">BODY</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff"></</span><span style="color: #800000">HTML</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></div> <br /> <br /> 解释一下:<br /> 1.window指代的是当前面Q例如对于此例它指的是top.html面?br /> 2.parent指的是当前页面的爉面,也就是包含它的框枉面。例如对于此例它指的是framedemo.html?br /> 3.frames是window对象Q是一个数l。代表着该框架内所有子面?br /> 4.item是方法。返回数l里面的元素?br /> 5.如果子页面也是个框架面Q里面还是其它的子页面,那么上面的有些方法可能不行?br /> <br /> <span style="color: red"><strong>附:<br /> </strong><span style="color: #000000"><strong>Javascripth面的几U方法:</strong><br /> 1    history.go(0) <br /> 2    location.reload() <br /> 3    location=location <br /> 4    location.assign(location) <br /> 5    document.execCommand('Refresh') <br /> 6    window.navigate(location) <br /> 7    location.replace(location) <br /> 8    document.URL=location.href <br /> </span><br /> <p> </p> <p><strong>自动h面的方?<br /> </strong>1.面自动hQ把如下代码加入<head>区域?br /> <meta http-equiv="refresh" content="20"><br /> 其中20指每?0U刷Cơ页?</p> <p>2.面自动跌{Q把如下代码加入<head>区域?br /> <meta http-equiv="refresh" content="20;url=http://www.wyxg.com"><br /> 其中20指隔20U后跌{到http://www.wyxg.com面</p> <p>3.面自动hjs?br /> <script language="JavaScript"><br /> function myrefresh()<br /> {<br />        window.location.reload();<br /> }<br /> setTimeout('myrefresh()',1000); //指定1U刷C?br /> </script></p> <p><strong>ASP.NET如何输出h父窗口脚本语?br /> </strong>1.   this.response.write("<script>opener.location.reload();</script>");  </p> <p><span style="color: #000000">2.   this.response.write("<script>opener.window.location.href = opener.window.location.href;</script>");   </span></p> <p><span style="color: #000000">3.   Response.Write("<script language=javascript>opener.window.navigate(''你要h的页.asp'');</script>")</span></p> <p><span style="color: #000000"><strong><br /> JSh框架的脚本语?br /> </strong><br /> //如何h包含该框架的面?nbsp;  <br /> <script language=JavaScript><br />    parent.location.reload();<br /> </script>   <br /> </span></p> <p><span style="color: #000000"><span style="color: #000000">//子窗口刷新父H口<br /> <script language=JavaScript><br />     self.opener.location.reload();<br /> </script></span><br /> ( 或 <span><a href="javascript:opener.location.reload()"></span><span>h</span><font face="verdana,arial,helvetica,sans-serif"><span></a>   </span></font>)<br /> <br /> //如何h另一个框架的面?nbsp;  <br /> <script language=JavaScript><br />    parent.另一FrameID.location.reload();<br /> </span><span style="color: #000000"></script></span><br /> <br /> <span><span style="color: #000000"><strong><span>如果惛_闭窗口时h或者想开H时h的话Q在</span><span><body></span><span>中调用以下语句即可?/span></strong><span><br /> <br /> <font face="verdana,arial,helvetica,sans-serif"><body onload="opener.location.reload()"> </font></span><span><font face="verdana,arial,helvetica,sans-serif">开H时h</font></span><span><br /> <font face="verdana,arial,helvetica,sans-serif"><body onUnload="opener.location.reload()"> </font></span><span><font face="verdana,arial,helvetica,sans-serif">关闭时刷?/font></span><span><br /> <br /> <font face="verdana,arial,helvetica,sans-serif"><script language="javascript"><br /> window.opener.document.location.reload()<br /> </script><br /> <br /> <strong>在弹出窗口的BODY中加?nbsp; <font color="#ff0000">onUnload="window.opener.location.reload();" </font>   关闭弹出H口则自动刷新父H口.</strong></font></span></span></span></p> </span> <img src ="http://m.tkk7.com/yifeng/aggbug/232584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yifeng/" target="_blank">忆风</a> 2008-10-06 01:15 <a href="http://m.tkk7.com/yifeng/archive/2008/10/06/232584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE和Firefox的兼定w?/title><link>http://m.tkk7.com/yifeng/archive/2008/09/15/228942.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sun, 14 Sep 2008 16:53:00 GMT</pubDate><guid>http://m.tkk7.com/yifeng/archive/2008/09/15/228942.html</guid><wfw:comment>http://m.tkk7.com/yifeng/comments/228942.html</wfw:comment><comments>http://m.tkk7.com/yifeng/archive/2008/09/15/228942.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/yifeng/comments/commentRss/228942.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yifeng/services/trackbacks/228942.html</trackback:ping><description><![CDATA[<div align="center"> <div class="akwyqoy" id="paperTitleArea" style="background-position: center 50%; margin-top: 50px; background-image: url(/qzone/space_item/orig/8/27928_t.gif); margin-bottom: 35px; width: 345px; background-repeat: no-repeat; height: 70px" align="center"><span id="paperTitle" style="margin-top: 25px; display: block; font-weight: bolder; word-break: break-all"><font style="color: #0000ff" face="宋体" color="#80ffff" size="4">IE和Firefox的兼定w?/font></span></div> </div> 在E桌面<a target="_blank">http://www.epopos.com</a><wbr>开发过E中ȝ了一些IE和Firefox的兼定w题?<br /> </strong><wbr><br /> 1</strong><wbr>、Event的问?/strong><wbr> <br /> 在ie中我们可以直接用event变量Q但是在firefox下由于event是局部变量,firefox下我们可以事件绑定到元素?例如 <br /> <input type="button" onclick="doEvent (event)">   <br /> Z同时兼容ie和firefox 通常在函数种通过以下代码获得事g?<br /> var theEvent = window.event||e; <br /> var srcElement = theEvent.srcElement; <br />    if (!srcElement) { <br />         srcElement = theEvent.target; <br />    } <br /> <br /> 2</strong><wbr>、o镜问?/strong><wbr> <br /> 在IE下是?filters.alpha.opacity <br /> 在Firefox下是?style.opacity <br /> 一般是来设|元素的透明度,所以我们一般通过以下代码来解军_定w?<br /> var IE = navigator.userAgent.indexOf("MSIE")>0? 1: 0; <br /> if(IE) <br /> { <br />      obj.filters.alpha.opacity; <br /> } <br /> Else <br /> { <br />      obj.style.opacity; <br /> } <br /> <br /> 3</strong><wbr>、innerText</strong><wbr> <br /> IE下我们经怋用innerTextQ但是Firefox不支持此写法Q通常我们写成textContent. 它同时兼容IE和firefoxQ徏议大安用textContent.对于没有html标签的我们也可以采用innerHTML替代?<br /> <br /> 4</strong><wbr>、event.srcElement</strong><wbr> <br /> IE?event对象有srcElement属?但是没有target属?Firefox?event对象有target属?但是没有srcElement属? <br /> 解决Ҏ:使用obj(obj = event.srcElement ? event.srcElement : event.target;) <br /> <br /> 5</strong><wbr>?parentNode替代parentElement</strong><wbr> <br /> 在IE中我可以通过obj.parentElement获得父元素,但是firex下不支持 <br /> 因ؓfirefox与IE都支持DOMQ所有我们可以采用obj.parentNode来解冟?<br /> <br /> 6</strong><wbr>?strong><wbr>集合cd象问?/strong><wbr></strong><wbr> <br /> IE?可以使用()或[]获取集合cd?Firefox?只能使用[]获取集合cd? <br /> 解决Ҏ:l一使用[]获取集合cd? <br /> <br /> <br /> <strong><wbr>7</strong><wbr>?strong><wbr>自定义属性问?/strong><wbr></strong><wbr> <br /> 说明:IE?可以使用获取常规属性的Ҏ来获取自定义属?也可以用getAttribute()获取自定义属?Firefox?只能使用getAttribute()获取自定义属? <br /> 解决Ҏ:l一通过getAttribute()获取自定义属? <br /> <br /> <strong><wbr>8</strong><wbr>?strong><wbr>eval("idName")</strong><wbr><strong><wbr>问题</strong><wbr></strong><wbr> <br /> <br /> 说明:IE?,可以使用eval("idName")或getElementById("idName")来取得id为idName的HTML对象;Firefox下只能用getElementById("idName")来取得id为idName的HTML对象. <br /> 解决Ҏ:l一用getElementById("idName")来取得id为idName的HTML对象. <br /> <br /> <strong><wbr>9</strong><wbr>?strong><wbr>变量名与某HTML对象ID相同的问?/strong><wbr></strong><wbr> <br /> 说明:IE?HTML对象的ID可以作ؓdocument的下属对象变量名直接使用;Firefox下则不能.Firefox?可以使用与HTML对象ID相同的变量名;IE下则不能?<br /> 解决Ҏ:使用document.getElementById("idName")代替document.idName.最好不要取HTML对象ID相同的变量名,以减错?在声明变量时,一律加上var,以避免歧? <br /> <br /> <strong><wbr>10</strong><wbr>?strong><wbr>const</strong><wbr><strong><wbr>问题</strong><wbr></strong><wbr> <br /> 说明:Firefox?可以使用const关键字或var关键字来定义帔R;IE?只能使用var关键字来定义帔R. <br /> 解决Ҏ:l一使用var关键字来定义帔R. <br /> <br /> <strong><wbr>11</strong><wbr>?strong><wbr>input.type</strong><wbr><strong><wbr>属性问?/strong><wbr></strong><wbr> <br /> 说明:IE下input.type属性ؓ只读;但是Firefox下input.type属性ؓd. <br /> <br /> <strong><wbr>12</strong><wbr>?strong><wbr>event.x</strong><wbr><strong><wbr>与event.y问题</strong><wbr></strong><wbr> <br /> <br /> 说明:IE?even对象有x,y属?但是没有pageX,pageY属?Firefox?even对象有pageX,pageY属?但是没有x,y属? <br /> 解决Ҏ:使用mX(mX = event.x ? event.x : event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX. <br /> <br /> <br /> <strong><wbr>13</strong><wbr>?strong><wbr>window.location.href</strong><wbr><strong><wbr>问题</strong><wbr></strong><wbr> <br /> <br /> 说明:IE或者Firefox2.0.x?可以使用window.location或window.location.href;Firefox1.5.x?只能使用window.location. <br /> 解决Ҏ:使用window.location来代替window.location.href. <br /> <br /> <strong><wbr>14</strong><wbr>?strong><wbr>模态和非模态窗口问?/strong><wbr></strong><wbr> <br /> <br /> 说明:IE?可以通过showModalDialog和showModelessDialog打开模态和非模态窗?Firefox下则不能. <br /> ?x?直接使用window.open(pageURL,name,parameters)方式打开新窗口。如果需要将子窗口中的参C递回父窗??以在子窗口中使用window.opener来访问父H口. 例如Qvar parWin = window.opener; parWin.document.getElementById("Aqing").value = "Aqing"; <br /> <br /> <strong><wbr>15</strong><wbr>?strong><wbr>frame</strong><wbr><strong><wbr>问题</strong><wbr></strong><wbr> <br /> <br /> 以下面的frameZQ?<br /> <frame src="/xxx.html" id="frameId" name="frameName" /> <br /> <br /> (1)讉Kframe对象: <br /> IE:使用window.frameId或者window.frameName来访问这个frame对象. <br /> Firefox:只能使用window.frameName来访问这个frame对象. <br /> 另外Q在IE和Firefox中都可以使用window.document.getElementById("frameId")来访问这个frame对象. <br /> <br /> (2)切换frame内容: <br /> 在IE和Firefox中都可以使用window.document.getElementById("testFrame").src = "xxx.html"或window.frameName.location = "xxx.html"来切换frame的内? <br /> <br /> 如果需要将frame中的参数传回父窗口,可以在frme中用parent来访问父H口。例如:parent.document.form1.filename.value="Aqing"; <br /> <br /> <strong><wbr>16</strong><wbr>?strong><wbr>body</strong><wbr><strong><wbr>问题</strong><wbr></strong><wbr> <br /> <br /> Firefox的body在body标签没有被浏览器完全d之前存在;而IE的body则必dbody标签被浏览器完全d之后才存? <br /> <br /> 例如Q?<br /> FirefoxQ?<br /> <body> <br /> <script type="text/javascript"> <br /> document.body.onclick = function(evt){ <br /> evt = evt || window.event; <br /> alert(evt); <br /> } <br /> </script> <br /> </body> <br /> IE&FirefoxQ?<br /> <body> <br /> </body> <br /> <script type="text/javascript"> <br /> document.body.onclick = function(evt){ <br /> evt = evt || window.event; <br /> alert(evt); <br /> } </script> <br /> <br /> <strong><wbr>17</strong><wbr>?strong><wbr> 事g委托Ҏ</strong><wbr></strong><wbr> <br /> IEQdocument.body.onload = inject; //Function inject()在这之前已被实现 <br /> FirefoxQdocument.body.onload = inject(); <br /> document.body.onload=new Function('inject()'); <br /> <br /> <strong><wbr>18</strong><wbr>?strong><wbr>cursor:hand </strong><wbr><strong><wbr>?cursor:pointer</strong><wbr></strong><wbr> <br /> firefox不支持handQ但ie支持pointer <br /> 解决Ҏ: l一使用pointer <br /> <strong><wbr>19</strong><wbr>?strong><wbr> FireFox</strong><wbr><strong><wbr>中类?obj.style.height = imgObj.height 的语句无?/strong><wbr></strong><wbr> <br /> <br /> 解决ҎQ?<br /> obj.style.height = imgObj.height + 'px'; <br /> <br /> <strong><wbr>20</strong><wbr>?strong><wbr>ie,firefox</strong><wbr><strong><wbr>以及其它览器对?table 标签的操作都各不相同Q在ie中不允许对table和tr的innerHTML赋|使用js增加一个trӞ使用appendChileҎ也不用?/strong><wbr></strong><wbr> <br /> <br /> 解决ҎQ?<br /> //向tableq加一个空行: <br /> var row = otable.insertRow(-1); <br /> var cell = document.createElement("td"); <br /> cell.innerHTML = " "; <br /> cell.className = "XXXX"; <br /> row.appendChild(cell); <br /> <br /> <strong><wbr>21</strong><wbr>?strong><wbr> padding </strong><wbr><strong><wbr>问题</strong><wbr></strong><wbr> <br /> <br /> padding 5px 4px 3px 1px FireFox无法解释?必须Ҏ padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px; <br /> <br /> <strong><wbr>22</strong><wbr>?strong><wbr>消除ul、ol{列表的~进?/strong><wbr></strong><wbr> <br /> <br /> 样式应写?list-style:none;margin:0px;padding:0px; <br /> 其中margin属性对IE有效Qpadding属性对FireFox有效 <br /> <br /> <strong><wbr>23</strong><wbr>?strong><wbr>CSS</strong><wbr><strong><wbr>透明</strong><wbr></strong><wbr> <br /> <br /> IEQfilter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)?<br /> FFQopacity:0.6?<br /> <br /> <strong><wbr>24</strong><wbr>?strong><wbr>CSS</strong><wbr><strong><wbr>圆角</strong><wbr></strong><wbr> <br /> <br /> IEQ不支持圆角?<br /> FFQ?-moz-border-radius:4pxQ或?moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;?<br /> <br /> <strong><wbr>25</strong><wbr>?strong><wbr>CSS</strong><wbr><strong><wbr>双线凹凸Ҏ</strong><wbr></strong><wbr> <br /> <br /> IEQborder:2px outset;?<br /> FFQ?-moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080; <br /> <strong><wbr>26</strong><wbr>?strong><wbr>ie</strong><wbr><strong><wbr>支持document.all 而firefox 不支?/strong><wbr></strong><wbr> <br /> 改用下面三个tag的其中一个来代替document.all <br /> getElementsByTagName("tagName") 可以得到得到所有标{օ素的集合 <br /> getElementById("idName")          可以按id得到某一元素 <br /> getElementsByName("Name")            可以得到按name属性得到某一元素 <br /> <strong><wbr>27</strong><wbr><strong><wbr>、firefox 中用innerHTML 的方?/strong><wbr><strong><wbr> <br /> </strong><wbr><div id="online"></div> <br /> document.all.online.innerHTML; //q种Ҏ在IE中可以用,但不是标准方?<br /> document.getElementById("online").innerHTML; //q样firefoxp使用innerHTML?<br /> <strong><wbr>28</strong><wbr><strong><wbr>、eval()与window.execScript()执行脚本</strong><wbr><strong><wbr> <br /> </strong><wbr>IE、firerox均支持eval()Qfirefox不支持window.execScript() <br /> 解决Q统一使用eval() <br /> 29</strong><wbr><strong><wbr>?/strong><wbr>e.button</strong><wbr>键值有别于event.button,只有3个键D无l合键?/strong><wbr> <br /> <br /> <br /> 30</strong><wbr><strong><wbr>?/strong><wbr>insertAdjacentHTML </strong><wbr>?insertAdjacentText</strong><wbr> <br /> insertAdjacentHTML ?insertAdjacentText 是IE下特有的JSQ功能非常好?<br /> <br /> 可惜Firefox 没有q两东东Q不q,加上下面的这D늚QFirefox下也可以支持q?<br /> <br /> 两个Ҏ?<br /> <br /> if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement) <br /> { <br />      HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode) <br />      { <br />         switch (where) <br />         { <br />             case 'beforeBegin': <br />                 this.parentNode.insertBefore(parsedNode,this) <br />                 break; <br />             case 'afterBegin': <br />                 this.insertBefore(parsedNode,this.firstChild); <br />                 break; <br />             case 'beforeEnd': <br />                 this.appendChild(parsedNode); <br />                 break; <br />             case 'afterEnd': <br />              if (this.nextSibling) this.parentNode.insertBefore(parsedNode,this.nextSibling); <br />                     else this.parentNode.appendChild(parsedNode); <br />                 break; <br />          } <br />      } <br /> <br />      HTMLElement.prototype.insertAdjacentHTML = function (where,htmlStr) <br />      { <br />          var r = this.ownerDocument.createRange(); <br />          r.setStartBefore(this); <br />          var parsedHTML = r.createContextualFragment(htmlStr); <br />          this.insertAdjacentElement(where,parsedHTML) <br />      } <br /> <br />      HTMLElement.prototype.insertAdjacentText = function (where,txtStr) <br />      { <br />          var parsedText = document.createTextNode(txtStr) <br />          this.insertAdjacentElement(where,parsedText) <br />      } <br /> } <br /> 31</strong><wbr><strong><wbr>?/strong><wbr>elementFromPoint</strong><wbr> <br /> </strong><wbr><br /> Ie下有elementFromPointҎQ但是firefox没有Q可以重写该Ҏ <br /> <br /> Document.prototype.elementFromPoint = function(x, y) <br />      { <br />      this.addEventListener("mousemove", this.elementFromPoint__handler, false); <br />      var event = this.createEvent("MouseEvents"); <br />      var box = this.getBoxObjectFor(this.documentElement); <br />      var screenDelta = { x: box.screenX, y: box.screenY }; <br />      event.initMouseEvent("mousemove", true, false, this.defaultView, 0, <br />      x + screenDelta.x, y + screenDelta.y, x, y, <br />      false, false, false, false, 0, null); <br />      this.dispatchEvent(event); <br />      this.removeEventListener("mousemove", this.elementFromPoint__handler, false); <br />      return this.elementFromPoint__target; <br />      } <br />      Document.prototype.elementFromPoint__handler = function (event) <br />      { <br />      this.elementFromPoint__target = event.explicitOriginalTarget; <br /> <br />      if (this.elementFromPoint__target.nodetype == Node.TEXT_NODE) <br />      this.elementFromPoint__target = this.elementFromPoint__target.parentNode; <br /> <br />      if (this.elementFromPoint__target.nodeName.toUpperCase() == "HTML" && this.documentElement.nodeName.toUpperCase() == "HTML") <br />      this.elementFromPoint__target = this.getElementsByTagName("BODY").item(0); <br /> <br />      //****added this code to check for textboxes and textareas <br />      if ( this.elementFromPoint__target.nodeName=="#document" )//possible textbox or textarea <br />      { <br />      rp = event.rangeParent; <br />      alert("event.rangeParent = " + rp); <br />      if ( event.rangeParent.nodetype == Node.TEXT_NODE )//textbox with a value <br />      this.elementFromPoint__target = event.rangeParent.parentNode.parentNode; <br />      else if ( event.rangeParent.nodeName == 'div' )//textbox without a value <br />      this.elementFromPoint__target = event.rangeParent.parentNode; <br />      } <br />      //****end. However this cause permission denied as the rangeParent object appears to be private! <br /> <br />      event.preventdefault(); <br />      event.stopPropagation(); <br />      } <br />      Document.prototype.elementFromPoint__target = null; <br /> <br /> <strong><wbr>32</strong><wbr>、mousewheel事g</strong><wbr> <br /> firefox 没有 mousewheel 事g。可以通过以下Ҏ解决. <br /> <script> <br /> var n=0; <br /> function mwEvent(e) <br /> { <br /> if (!e) e = window.event; <br /> if ( e.wheelDelta <= 0 || e.detail > 0) { n++; } <br /> else { n--; } <br /> window.status=n; <br /> } <br /> if(document.attachEvent){ <br /> document.attachEvent("onmousewheel",mwEvent); <br /> }else{ <br /> window.addEventListener("DOMMouseScroll", mwEvent, false); <br /> } <br /> </script> <br /> <br /> <strong><wbr>33</strong><wbr>?a target="_blank">IE和FireFox的鼠标滚轮事?/a><wbr></strong><wbr> <br /> 滚轮IE和Firefox的代码不一P <br /> IE是mousewheel事gQFirefox是DOMMouseScroll事g <br /> 事g属性,IE是event.wheelDeltaQFirefox是event.detail <br /> 属性的方向g不一PIE向上?> 0QFirefox向下?> 0 <br /> //滚轮攑֤或羃,ZPrototype 1.6 <br /> var scrollfunc = function(event) { <br /> var direct = 0; <br />         if (event.wheelDelta) { <br />                 direct = event.wheelDelta > 0 ? 1 : -1; <br />         } else if (event.detail) { <br />                 direct = event.detail < 0 ? 1 : -1; <br />         } <br />         zoom(direct); <br /> }; <br /> Event.observe(document, 'mousewheel', scrollfunc); <br /> Event.observe(document, 'DOMMouseScroll', scrollfunc); //firefox <br /> <strong><wbr>34</strong><wbr>?a target="_blank">attachEvent</a><wbr>Ҏ</strong><wbr> <br /> <br /> attachEventҎ解释: <br /> attachEvent?个参?W一个参数是事g?W二个参数是事g触发后所响应的方? Firefox下解x法是 <br /> Object.prototype.attachEvent=function(method,func) <br /> { <br /> if(!this[method]) <br />   this[method]=func; <br /> else <br />   this[method]=this[method].attach(func); <br /> } <br /> Function.prototype.attach=function(func){ <br /> var f=this; <br /> return function(){ <br />   f(); <br />   func(); <br /> } <br /> } <br /> <strong><wbr>36 </strong><wbr>?/strong><wbr><strong><wbr>title</strong><wbr><strong><wbr>替代alt</strong><wbr> <br /> 在firefox和ie力都用title,alt在firefox下不起作?img id="paperPicArea1" style="display: none; position: relative" alt="" src="http://cnc.imgcache.qq.com/ac/b.gif" /> <img src ="http://m.tkk7.com/yifeng/aggbug/228942.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yifeng/" target="_blank">忆风</a> 2008-09-15 00:53 <a href="http://m.tkk7.com/yifeng/archive/2008/09/15/228942.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://aiqingdao999.com" target="_blank">Ůһһ鴤Ƶ</a>| <a href="http://wwwwmmmm.com" target="_blank">ŷպþþƷ</a>| <a href="http://yy6767.com" target="_blank">߹ۿƵ</a>| <a href="http://zzz134.com" target="_blank">޵һҳۺͼƬ</a>| <a href="http://www55nana.com" target="_blank">ŮƵһ</a>| <a href="http://tedegold.com" target="_blank">aëƬѧѹۿ</a>| <a href="http://wcnmgb.com" target="_blank">ɫaAV</a>| <a href="http://222941.com" target="_blank">AV߹ۿɫ</a>| <a href="http://taoh2510.com" target="_blank">޾ƷŮþþþþ</a>| <a href="http://yulongfilm.com" target="_blank">ѸӰƬһ</a>| <a href="http://jiayila.com" target="_blank">96|</a>| <a href="http://6789311.com" target="_blank">Ʒ޳ɦɦ߹ۿ</a>| <a href="http://51wdn.com" target="_blank">δʮ˽˸ӰԺ</a>| <a href="http://hljjlhl.com" target="_blank">ҹƷþþþþ˳</a>| <a href="http://siqingsizu.com" target="_blank">þóѲ</a>| <a href="http://kj555888.com" target="_blank">Ʒ޾Ʒ</a>| <a href="http://773311h.com" target="_blank">޾ƷĻ</a>| <a href="http://289qq.com" target="_blank">޳ҹӰ</a>| <a href="http://xjscr.com" target="_blank">aƵƬ߹ۿ</a>| <a href="http://www330330.com" target="_blank">޾ƷaĻ</a>| <a href="http://gdbobo.com" target="_blank">avר</a>| <a href="http://7778kk.com" target="_blank">ػһһƬ</a>| <a href="http://meixiudashi.com" target="_blank">þþþ޾ƷС˵</a>| <a href="http://czhos.com" target="_blank">Ʒþ8xѹۿ</a>| <a href="http://dnf1000.com" target="_blank">ɫվwwwվ</a>| <a href="http://dazngt.com" target="_blank">jizzjizzƵ</a>| <a href="http://aizaicc.com" target="_blank">һƵ</a>| <a href="http://kouchoubao.com" target="_blank">޵Ӱһ</a>| <a href="http://626632.com" target="_blank">ˬִ̼߳Ƶ</a>| <a href="http://99999pp.com" target="_blank">ߴɳ·Ƶ</a>| <a href="http://91ttvv.com" target="_blank">AVۺ߹ۿ</a>| <a href="http://rimcn.com" target="_blank">պëƬ޶Ƶۿ</a>| <a href="http://600c81.com" target="_blank">˳վ</a>| <a href="http://hzkjjy.com" target="_blank">avҹƷһ</a>| <a href="http://sewuji.com" target="_blank">AVվ</a>| <a href="http://zgdhuibao.com" target="_blank">պƵƵ </a>| <a href="http://gkhnf.com" target="_blank">ѾƷһ߹ۿ</a>| <a href="http://www-34595.com" target="_blank">޾ƷӰ</a>| <a href="http://avxyz.com" target="_blank">Aһ</a>| <a href="http://805ios.com" target="_blank">ഺƵ߹ۿֱ</a>| <a href="http://mmm19.com" target="_blank">һ߹ۿ߹ۿ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>