??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产亚洲av成人,亚洲AV中文无码乱人伦在线视色,久久精品国产亚洲AV果冻传媒http://www.tkk7.com/b47248054/category/30354.htmlZh量保持低调。尊重别人,不要随便L断别人的发言Q认真的听别人的a语。不要老是想着把话题抢q来抓在自己手里。不能放开的h是没法获得的?/description>zh-cnFri, 09 Jul 2010 04:48:33 GMTFri, 09 Jul 2010 04:48:33 GMT60一套完整的javascript面试?-{案http://www.tkk7.com/b47248054/articles/325537.htmlsofotsofotThu, 08 Jul 2010 04:02:00 GMThttp://www.tkk7.com/b47248054/articles/325537.htmlhttp://www.tkk7.com/b47248054/comments/325537.htmlhttp://www.tkk7.com/b47248054/articles/325537.html#Feedback0http://www.tkk7.com/b47248054/comments/commentRss/325537.htmlhttp://www.tkk7.com/b47248054/services/trackbacks/325537.html阅读全文

sofot 2010-07-08 12:02 发表评论
]]>
一套完整的javascript面试?-试题http://www.tkk7.com/b47248054/articles/325538.htmlsofotsofotThu, 08 Jul 2010 04:02:00 GMThttp://www.tkk7.com/b47248054/articles/325538.htmlhttp://www.tkk7.com/b47248054/comments/325538.htmlhttp://www.tkk7.com/b47248054/articles/325538.html#Feedback0http://www.tkk7.com/b47248054/comments/commentRss/325538.htmlhttp://www.tkk7.com/b47248054/services/trackbacks/325538.html 一?/span> 单选题
1
、以下哪条语句会产生q行错误Q( Q?/span>
A.var obj = ();//
语法错误
B.var obj = [];//
创徏数组
C.var obj = {};//
创徏对象
D.var obj = //;
2、以下哪个单词不属于javascript保留字:Q?/span>Q?/span>
A.with
B.parent
C.class
D.void
3、请选择l果为真的表辑ּQ(Q?/span>
A.null instanceof Object
Q?/span>(!(nullinstanceof Object))Q?/span>
B.null === undefined
C.null == undefined
D.NaN == NaN

二、不定项选择?/span>
4
、请选择?/span>javascript理解有误的:()
A.JScript
?/span>javascript的简U?/span>
B.javascript
是网景公司开发的一U?/span>Java脚本语言Q其目的是ؓ了简?/span>Java的开发难?/span>
C.FireFox
?/span>IE存在大量兼容性问题的主要原因在于他们?/span>javascript的支持不同上
D.AJAX
技术一定要使用javascript技?/span>
5
?/span>foo对象?/span>att属性,那么获取att属性的|以下哪些做法是可以的Q(Q?/span>
A.foo.att
B.foo(“att?
C.foo[“att”]
D.foo{“att”}
E.foo[“a?”t?”t”]
6
、在不指定特D属性的情况下,哪几U?/span>HTML标签可以手动输入文本Q(Q?/span>
A.<TEXTAREA></TEXTAREA>
B.<INPUT type=”text?>
C.<INPUT type=”hidden?>
D.<DIV></DIV>

7
、以下哪些是javascript的全局函数Q(Q?/span>
A.escape
B.parseFloat
C.eval
D.setTimeout
E.alert
8
、关?/span>IFrame表述正确的有Q?/span>()
A.
通过IFrameQ网可以嵌入其他网内容,q可以动态更?/span>
B.
在相同域名下Q内嵌的IFrame可以获取外层|页的对?/span>
C.
在相同域名下Q外层网脚本可以获?/span>IFrame|页内的对象
D.
可以通过脚本调整IFrame的大?/span>
9
、关于表Dq正的有:Q?/span>Q?/span>
A.
表格中可以包?/span>TBODY元素
B.
表格中可以包?/span>CAPTION元素
C.
表格中可以包含多?/span>TBODY元素
D.
表格中可以包?/span>COLGROUP元素
E.
表格中可以包?/span>COL元素
10
、关?/span>IE?/span>window对象表述正确的有Q(Q?/span>
A.window.opener
属性本w就是指?/span>window对象
B.window.reload()
Ҏ可以用来h当前面
C.window.location=”a.html?/span>?/span>window.location.href=”a.html?/span>的作用都是把当前面替换?/span>a.html
D.
定义了全局变量gQ可以用window.g的方式来存取该变?/span>
三、问{题Q?/span>
1
、谈?/span>javascript数组排序Ҏsort()的用,重点介绍sort()参数的用及其内部机?br />2、简q?/span>DIV元素?/span>SPAN元素的区别?br />3、结?/span>textq段l构Q谈?/span>innerHTML outerHTML innerText之间的区别?br />4、说几条XHTML规范的内容(臛_3条)
5、对Web标准化(或网站重构)知道哪些相关的知识,q几条你知道?/span>Web标准Q?br />四、程序题Q?/span>
1
、完?/span>foo()函数的内容,要求能够弹出对话框提C当前选中的是W几个单选框?/span>

< html >

< head >

< script >

 
function  foo() 

 
{

   
//  在此处添加代?/span>

   
 }


</ script >



</ head >

< body >

    
< form  name ="form1"  onsubmit ="return foo();" >

        
< input  type ="radio"  name ="radioGroup"   />

        
< input  type ="radio"  name ="radioGroup"   />

        
< input  type ="radio"  name ="radioGroup"   />

        
< input  type ="radio"  name ="radioGroup"   />

        
< input  type ="radio"  name ="radioGroup"   />

        
< input  type ="radio"  name ="radioGroup"   />

        
< input  type ="submit"   />

    
</ form >

</ body >

</ html >
2、填充注释部分的函数体,使得foo()函数调用弹出”成功”的对话框。代码应量?br />
<html>

<head>

 

 
<script>

function foo() 

{

   
var str = reverse('a,b,c,d,e,f,g');

      alert(str);

   
if (str == 'g,f,e,d,c,b,a') 

      alert('成功');

   
else alert('p|');

}


function reverse(str)

{

   
// 在此处加入代码,完成字符串翻转功?/span>

    
}


    
</script>

</head>

 

    
<body>

        
<input type="button" value="str" onclick="foo()" />

    
</body>

</html>


sofot 2010-07-08 12:02 发表评论
]]>
Javascript正则表达式教E?/title><link>http://www.tkk7.com/b47248054/articles/205560.html</link><dc:creator>sofot</dc:creator><author>sofot</author><pubDate>Tue, 03 Jun 2008 06:49:00 GMT</pubDate><guid>http://www.tkk7.com/b47248054/articles/205560.html</guid><wfw:comment>http://www.tkk7.com/b47248054/comments/205560.html</wfw:comment><comments>http://www.tkk7.com/b47248054/articles/205560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/b47248054/comments/commentRss/205560.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/b47248054/services/trackbacks/205560.html</trackback:ping><description><![CDATA[<div id="uuq6eom" class="tit">Javascript正则表达式教E?/div> <table style="table-layout: fixed"> <tbody> <tr> <td> <div class="2gag8c2" id="blog_text" class="cnt"> <p>一Q概q?/p> <p>1Q正则表辑ּQ可以说是Q何一U编E语a都提供的机制Q它主要是提供了对字W串的处理能力?br /> 2Q正则表辑ּ在页面处理中的用场景:<br /> 1Q表单验证。验证某些域W合某种规则Q例如邮件输入框必须输入的是邮g、联pȝ话输入框输入的必L数字{等<br /> 2Q处理DOM模型。例如通过表达式定位DOM中的一个对象或一pd对象Q一个例子就是定位id属性中含有某个Ҏ字符的div对象?br /> 3Q纯~程逻辑。直接用于编E的逻辑之中?br /> 3Q说明:本部分所丄正则表达式的代码片断Q都是经q测试的Q但有一炚w要注意,对于换行的字W串的定义,我们在表q时使用的是cM如下的Ş式:<br /> var str=“It’s is<br /> a beautiful city”Q?br /> q种形式直接写在JS代码中是错误的,那如何获取具有换行的字符串呢Q简单的办法Q在textarea中输入文本ƈ换行Q然后将该DlJS变量卛_。例如:<br /> var str=document.forms[0].mytextarea.value;         </p> <p>二,语法与?/p> <p>1Q定义正则表辑ּ</p> <p>1Q定义正则表辑ּ有两UŞ式,一U是普通方式,一U是构造函数方式?br /> 2Q普通方式:var reg=/表达?附加参数<br /> 表达式:一个字W串Q代表了某种规则Q其中可以用某些特D字W,来代表特D的规则Q后面会详细说明?br /> 附加参数Q用来扩展表辑ּ的含义,目前主要有三个参敎ͼ<br /> gQ代表可以进行全局匚w?br /> iQ代表不区分大小写匹配?br /> mQ代表可以进行多行匹配?br /> 上面三个参数Q可以Q意组合,代表复合含义Q当然也可以不加参数?br /> 例子Q?br /> var reg=/a*b/;<br /> var reg=/abc+f/g;<br /> 3Q构造函数方式:var reg=new RegExp(“表达?#8221;,”附加参数”);<br /> 其中“表达?#8221;?#8220;附加参数”的含义与上面那种定义方式中的含义相同?br /> 例子Q?br /> var reg=new RegExp(“a*b”);<br /> var reg=new RegExp(“abc+f”,”g”);<br /> 4Q普通方式与构造函数方式的区别<br /> 普通方式中的表辑ּ必须是一个常量字W串Q而构造函C的表辑ּ可以是常量字W串Q也可以是一个js变量Q例如根据用L输入来作辑ּ参数{等Q?br /> var reg=new RegExp(document.forms[0].exprfiled.value,”g”);</p> <p>2Q表辑ּ模式</p> <p>1Q表辑ּ模式Q是指表辑ּ的表达方式与样式Q??var reg=/表达?附加参数 中的“表达?#8221;怎样Lqͼ<br /> 2Q从规范上讲Q表辑ּ模式分ؓ单模式和复合模式?br /> 3Q简单模式:是指通过普通字W的l合来表辄模式Q例?br /> var reg=/abc0d/;<br /> 可见单模式只能表C具体的匚w?br /> 4Q复合模式:是指含有通配W来表达的模式,例如Q?br /> var reg=/a+b?\w/;<br /> 其中??和\w都属于通配W,代表着Ҏ的含义。因此复合模式可以表达更为抽象化的逻辑?br /> 下面我们着重说一下复合模式中各个通配W的含义及其使用?br /> 5)复合模式中特D字W的讲解Q?/p> <p>1>\Q在许多~程语言里面被用作{义符Q一般来?br /> \W号后面如果跟的是普通字WcQ那么\c׃表特D的含义Q例如n本来代表字符nQ但\n׃表换行?br /> \W号后面如果跟的是特D字WcQ那么\c׃表普通字WcQ例如\一般用作{义符Q但\\则调表普通字W\?br /> Javascript的正则表辑ּ中\的用法与上面相同Q只是不同的~程语言Q特D字W表可能不太一LŞ了?/p> <p>2>^Q匹配输入字W串的v始端Q如果是多行匚wQ即表达式的附加参数中含有mQ则也在一个换行符后匹配?br /> 例子Q?^B/匚w “Bab Bc ”中的W一个B<br /> 例子2Q?^B/gm匚w<br />           “Badd B<br />           cdaf<br />           B dsfB”<br />           中的W一行第一个BQ第三行中的W一个B<br />           <br /> 3>$Q匹配输入字W创的尾端,如果是多行匹配,卌辑ּ的附加参C含有mQ则也在一个换行符前匹配?br /> 与^的用法相反?br /> 例子Q?t$/匚w“bat”中的tQ但是不匚w“hate”中的t<br /> 例子2Q?t$/匚w<br /> “tag at<br /> bat”<br /> 中第一行的最后一个t和第二行的t?/p> <p>4>*Q匹配前一个字W?ơ或多次?br /> 例子Q?ab*/匚w“dddabbbbc”中的“abbbb”Q也匚w“ddda”中的“a”</p> <p>5>+Q匹配前一个字W?ơ或多次?br /> 例子Q?ab+/匚w“dddabbbbc”中的“abbbb”Q但不匹?#8220;ddda”<br /> 与后面的{1,}Q原型:{n,}Q的用法cM</p> <p>6>?Q?的用法比较特D,一般来说它用来对前一个字W做0ơ或1ơ匹配,但是它有另外两种Ҏ的用法:<br /> 如果紧跟???和{ }之后Q则表示原始匚w的最次数匹配,例如Q?br /> /ba*/本来匚w“bbbaaaa”中的“baaaa”Q但?ba*?/则匹?#8220;bbbaaaa”中的“b”Q因?表示0ơ或多次匚wQ而加?应该表示最次数匹配,?ơ匹配)?br /> 同理Q?ba+?/则匹?#8220;baaaa”中的“ba”?br /> 作ؓ语法l构W号Q用于前置断言中,卛_面要说到的x(?=y)和x(?!=y)</p> <p>7>.Q小数点中的“.”P匚wM一个单独的字符Q但是换行符除外?br /> 标准中d有哪些字W?请参考:字符?br /> 例如Q?a.b/匚w“acbaa”中的“acb”Q但是不匚w“abbb”?/p> <p>8>(x)Q表C匹配x(qҎ字符x或者特指一个字W,x表示一个字W串)Q而且匚w会被CQ在语法中这U?)被称?#8220;capturing parentheses ”Q即捕捉用的括受?br /> 匚w会被CQ是因ؓ在表辑ּ提供的函CQ有些函数返回一个数l,该数l会保存所匚w的所有字W串Q例如exec()函数?br /> 另外q要注意()中的x被记住的前提是匹配x?br /> 例子1Q?br /> var regx=/a(b)c/;<br /> var rs=regx.exec(“abcddd”);<br /> 从上面可以看?/a(b)c/匚w“abcddd”中的“abc”Q因?)的原因,b也会记录下来Q因此rsq回的数字内容ؓQ?br /> {abc,b}<br /> 例子2Q?br /> var regx=/a(b)c/;<br /> var rs=regx.exec(“acbcddd”);<br /> rsq回nullQ因?a(b)c/不匹?#8220;acbcddd”Q所?)中的b不会被记录下来(管字符串中含有bQ?br /> <br /> 9>(?:x)Q匹配xQ但不会CxQ这U格式中?)被称?#8220;non-capturing parentheses ”Q即非捕捉用的小括号?br /> 例子Q?br /> var regx=/a(?:b)c/;<br /> var rs=regx.exec(“abcddd”);<br /> 从上面可以看?/a(?:b)c/匚w“abcddd”中的“abc”Q因??:)的原因,b不会记录下来Q因此rsq回的数字内容ؓQ?br /> {abc}</p> <p>10>X(?=y)Q匹配xQ仅当后面紧跟着y时。如果符合匹配,则只有x会被CQy不会被记住?br /> 例子Q?br /> var regx=/user(?=name)/;<br /> var rs=regx.exec(“The username is Mary”);<br /> l果Q匹配成功,而且rs的gؓ{user}</p> <p>11>X(?!y)Q匹配xQ仅当后面不紧跟着y时。如果符合匹配,则只有x会被CQy不会被记住?br /> 例子Q?br /> var regx=/user(?!name)/;<br /> var rs=regx.exec(“The user name is Mary”);<br /> l果Q匹配成功,而且rs的gؓ{user}<br /> 例子2Q?br /> var regx=/\d+(?!\.)/;<br /> var rs=regx.exec(“54.235”);<br /> l果Q匹配成果,rs的gؓ{5}Q不匚w54是因?4后面跟着“.”P当然235也匹配,但是׃execҎ的行为,235不会被返?/p> <p>12>x|yQ匹配x或y。注意如果x和y都匹配上了,那么只记住x?br /> 例子Q?br /> var regx=/beijing|shanghai/;<br /> var rs=regx.exec(“I love beijing and shanghai”);<br /> l果Q匹配成功,rs的gؓ{beijing}Q虽然shanghai也匹配,但不会被C?/p> <p>13>{n}Q匹配前一个字W的nơ出现?br /> n必须是一个非负数Q当然如果是一个负数或数也不会报语法错误?br /> 例子Q?br /> var regx=/ab{2}c/;<br /> var rs=regx.exec(“abbcd”);<br /> l果Q匹配成功,rs的gؓQ{abbc}?/p> <p>14>{n,}Q匹配前一个字W的臛_nơ出现?br /> 例子Q?br /> var regx=/ab{2,}c/;<br /> var rs=regx.exec(“abbcdabbbc”);<br /> l果Q匹配成功,rs的gؓQ{abbc}。注意ؓ什么abbbc也符合条件ؓ什么没有被CQ这与execҎ的行为有养I后面会统一讲解?/p> <p>15>{n,m}Q匹配前一个字W的臛_nơ最多mơ的出现?br /> 只要n与m为数字,而且m>=n׃会报语法错误?br /> 例子Q?br /> var regx=/ab{2,5}c/;<br /> var rs=regx.exec(“abbbcd”);<br /> l果Q匹配成功,rs的gؓQ{abbbc}?br /> 例子2Q?br /> var regx=/ab{2,2}c/;<br /> var rs=regx.exec(“abbcd”);<br /> l果Q匹配成功,rs的gؓQ{abbc}?br /> 例子3Q?br /> var regx=/ab(2,5)/;<br /> var rs=regx.exec(“abbbbbbbbbb”);<br /> l果Q匹配成功,rs的gؓQ{abbbbb}Q这说明Q如果前一个字W出现多于mơ,则只匚wmơ。另外:<br /> var regx=/ab(2,5)c/;<br /> var rs=regx.exec(“abbbbbbbbbbc”);<br /> l果Q匹配失败,rs的gؓQnullQؓ什么匹配失败,因ؓb多于5个则b(2,5)会匹配前5个bQ,而表辑ּ/ab(2,5)c/中b后面是cQ但字符串中5个b之后q是b所以会报错?/p> <p>16>[xyz]Qxyz表示一个字W串Q该模式表示匚w[]中的一个字W,形式上[xyz]{同于[x-z]?br /> 例子Q?br /> var regx=/a[bc]d/;<br /> var rs=regx.exec(“abddgg”);<br /> l果Q匹配成功,rs的gؓQ{abd}<br /> 例子2Q?br /> var regx=/a[bc]d/;<br /> var rs=regx.exec(“abcd”);<br /> l果Q匹配失败,rs的gؓQnullQ之所以失败,是因为[bc]表示匚wb或c中的一个,但不会同时匹配?/p> <p>17>[^xyz]Q该模式表示匚w非[]中的一个字W,形式上[^xyz]{同于[^x-z]?br /> 例子Q?br /> var regx=/a[^bc]d/;<br /> var rs=regx.exec(“afddgg”);<br /> l果Q匹配成功,rs的gؓQ{afd}<br /> 例子2Q?br /> var regx=/a[^bc]d/;<br /> var rs=regx.exec(“abd”);<br /> l果Q匹配失败,rs的gؓQ?/p> <p>18>[\b]Q匹配退格键?/p> <p>19>\bQ匹配一个词的边界符Q例如空格和换行W等{,当然匚w换行W时Q表辑ּ应该附加参数m?br /> 例子Q?br /> var regx=/\bc./;<br /> var rs=regx.exec(“Beijing is a beautiful city”);<br /> l果Q匹配成功,rs的gؓQ{ci}Q注意c前边的空g会匹配到l果中,即{ ci}是不正确的?/p> <p>20>\BQ代表一个非单词边界?br /> 例子Q?br /> var regx=/\Bi./;<br /> var rs=regx.exec(“Beijing is a beautiful city”);<br /> l果Q匹配成功,rs的gؓQ{ij}Q即匚w了Beijing中的ij?/p> <p>21>\cXQ匹配一个控制字W。例如, \cM 匚w一?Control-M ?<br /> 回RW?x 的值必Mؓ A-Z ?a-z 之一。否则,?c 视ؓ一 <br /> 个原义的 ’c’ 字符。(实际的例子还需补充Q?/p> <p>21>\dQ匹配一个数字字W,{同于[0-9]?br /> 例子Q?br /> var regx=/user\d/;<br /> var rs=regx.exec(“user1”);<br /> l果Q匹配成功,rs的gؓQ{user1}</p> <p>22>\DQ匹配一个非数字字符Q等同于[^0-9]?br /> 例子Q?br /> var regx=/user\D/;<br /> var rs=regx.exec(“userA”);<br /> l果Q匹配成功,rs的gؓQ{userA}</p> <p>23>\fQ匹配一个换늬?/p> <p>24>\nQ匹配一个换行符。因为是换行W,所以在表达式中要加入m参数?br /> 例子Q?br /> var regx=/a\nbc/m;<br />        var str=“a<br />                bc”;<br />        var rs=regx.exec(str);<br />        l果Q匹配成功,rs的gؓQ{ }Q如果表辑ּ?a\n\rbc/Q则不会被匹配,因此在一般的~辑器中一?#8221;Enter”键代表着“回R换行”Q而非“换行回R”Q至在textarea域中是这L?nbsp;      <br /> 25>\rQ匹配一个回车符</p> <p>26>\sQ匹配一个空格符Q等同于[ \f\n\r\t\v\u00A0\u2028\u2029].<br /> 例子Q?br /> var regx=/\si/;<br /> var rs=regx.exec(“Beijing is a city”);<br /> l果Q匹配成功,rs的gؓQ{ i}</p> <p>27>\SQ匹配一个非I格W,{同于[ ^\f\n\r\t\v\u00A0\u2028\u2029].<br /> 例子Q?br /> var regx=/\Si/;<br /> var rs=regx.exec(“Beijing is a city”);<br /> l果Q匹配成功,rs的gؓQ{ei}</p> <p>28>\tQ匹配一个tab<br /> 例子Q?br /> var regx=/a\tb/;<br /> var rs=regx.exec(“a bc”);<br /> l果Q匹配成功,rs的gؓQ?{a       bc}</p> <p>29>\vQ匹配一个竖向的tab</p> <p>30>\wQ匹配一个数字、_或字母表字符Q即[A-Za-z0-9_ ]?br /> 例子Q?br /> var regx=/\w/;<br /> var rs=regx.exec(“$25.23”);<br /> l果Q匹配成功,rs的gؓQ{2}</p> <p>31>\WQ匹配一个非数字、_或字母表字符Q即[^A-Za-z0-9_ ]?br /> 例子Q?br /> var regx=/\w/;<br /> var rs=regx.exec(“$25.23”);<br /> l果Q匹配成功,rs的gؓQ{$}</p> <p>32>\nQ注意不是\nQ这里n是一个正整数Q表C匹配第n?)中的字符?br /> 例子Q?br /> var regx=/user([,-])group\1role/;<br /> var rs=regx.exec(“user-group-role”);<br /> l果Q匹配成功,rs的gؓQ{user-group-role,-}Q同样对user,group,role的匹配也是成功的Q但像user-group,role{就不对了?/p> <p>33>\0Q匹配一个NUL字符?/p> <p>34>\xhhQ匹配一个由两位16q制数字所表达的字W?/p> <p>35>\uhhhhQ匹配一个由四位16q制数字所表达的字W?/p> <p><br /> 3Q表辑ּ操作</p> <p>1Q表辑ּ操作Q在q里是指和表辑ּ相关的方法,我们介l六个方法?br /> 2Q表辑ּ对象QRegExpQ方法:</p> <p>1>exec(str)Q返回str中与表达式相匚w的第一个字W串Q而且以数l的形式表现Q当然如果表辑ּ中含有捕捉用的小括号Q则q回的数l中也可能含?)中的匚w字符Ԍ例如Q?br /> var regx=/\d+/;<br /> var rs=regx.exec(“3432ddf53”);<br /> q回的rsgؓQ{3432}<br /> var regx2=new RegExp(“ab(\d+)c”);<br /> var rs2=regx2.exec(“ab234c44”);<br /> q回的rsgؓQ{ab234c,234}<br /> 另外Q如果有多个合适的匚wQ则W一ơ执行execq回一个第一个匹配,此时l箋执行execQ则依次q回W二个第三个匚w。例如:<br /> var regx=/user\d/g;<br /> var rs=regx.exec(“ddduser1dsfuser2dd”);<br /> var rs1=regx.exec(“ddduser1dsfuser2dd”);<br /> 则rs的gؓ{user1}Qrs的gؓ{rs2}Q当然注意regx中的g参数是必ȝQ否则无论exec执行多少ơ,都返回第一个匹配。后面还有相兛_Ҏ及到Ҏ惌的解释?/p> <p>2>test(str)Q判断字W串str是否匚w表达式,q回一个布倹{例如:<br /> var regx=/user\d+/g;<br /> var flag=regx.test(“user12dd”);<br /> flag的gؓtrue?/p> <p>3QString对象Ҏ</p> <p>1>match(expr)Q返回与expr相匹配的一个字W串数组Q如果没有加参数gQ则q回W一个匹配,加入参数g则返回所有的匚w<br /> 例子Q?br /> var regx=/user\d/g;<br /> var str=“user13userddduser345”;<br /> var rs=str.match(regx);<br /> rs的gؓQ{user1,user3}</p> <p>2>search(expr)Q返回字W串中与expr相匹配的W一个匹配的index倹{?br /> 例子Q?br /> var regx=/user\d/g;<br /> var str=“user13userddduser345”;<br /> var rs=str.search(regx);<br /> rs的gؓQ?</p> <p>3>replace(expr,str)Q将字符串中匚wexpr的部分替换ؓstr。另外在replaceҎ中,str中可以含有一U变量符?Q格式ؓ$nQ代表匹配中被记住的Wn的匹配字W串Q注意小括号可以记忆匚wQ?br /> 例子Q?br /> var regx=/user\d/g;<br /> var str=“user13userddduser345”;<br /> var rs=str.replace(regx,”00”);<br /> rs的gؓQ?03userddd0045<br /> 例子2Q?br /> var regx=/u(se)r\d/g;<br /> var str=“user13userddduser345”;<br /> var rs=str.replace(regx,”$1”);<br /> rs的gؓQse3userdddse45<br /> 对于replace(expr,str)Ҏq要特别注意一点,如果expr是一个表辑ּ对象则会q行全局替换Q此时表辑ּ必须附加参数gQ否则也只是替换W一个匹配)Q如果expr是一个字W串对象Q则只会替换W一个匹配的部分Q例如:<br /> var regx=“user”<br /> var str=“user13userddduser345”;<br /> var rs=str.replace(regx,”00”);<br /> rs的gؓQ?0013userddduser345</p> <p>4>split(expr)Q将字符串以匚wexpr的部分做分割Q返回一个数l,而且表达式是否附加参数g都没有关p,l果是一L?br /> 例子Q?br /> var regx=/user\d/g;<br /> var str=“user13userddduser345”;<br /> var rs=str.split(regx);<br /> rs的gؓQ{3userddd,45}</p> <p>4Q表辑ּ相关属?/p> <p>1Q表辑ּ相关属性,是指和表辑ּ相关的属性,如下面的形式Q?br /> var regx=/myexpr/;<br /> var rs=regx.exec(str);<br /> 其中Q和表达式自wregx相关的属性有两个Q和表达式匹配结果rs相关的属性有三个Q下面将逐一介绍?br /> 2Q和表达式自w相关的两个属性:</p> <p>1>lastIndexQ返回开始下一个匹配的位置Q注意必L全局匚wQ表辑ּ中带有g参数Q时QlastIndex才会有不断返回下一个匹配|否则该gؓLq回W一个下一个匹配位|,例如Q?br /> var regx=/user\d/;<br /> var rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var lastIndex1=regx.lastIndex;<br /> rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var lastIndex2=regx.lastIndex;<br /> rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var lastIndex3=regx.lastIndex; <br /> 上面lastIndex1?Q第二个lastIndex2也ؓ9Q第三个也是9Q如果regx=/user\d/gQ则W一个ؓ9Q第二个?8Q第三个??/p> <p>2>sourceQ返回表辑ּ字符串自w。例如:<br /> var regx=/user\d/;<br /> var rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var source=regx.source;<br /> source的gؓuser\d<br /> 3Q和匚wl果相关的三个属性:</p> <p>1>indexQ返回当前匹配的位置。例如:<br /> var regx=/user\d/;<br /> var rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var index1=rs.index;<br /> rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var index2=rs.index; <br /> rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var index3=rs.index; <br /> index1?Qindex2?Qindex3?Q如果表辑ּ加入参数gQ则index1?Qindex2?3Qindex3会报错(index为空或不是对象)?/p> <p>2>inputQ用于匹配的字符丌Ӏ例如:<br /> var regx=/user\d/;<br /> var rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var input=rs.input;<br /> input的gؓsdsfuser1dfsfuser2?/p> <p>3>[0]Q返回匹配结果中的第一个匹配|对于match而言可能q回一个多值的数字Q则除了[0]外,q可以取[1]、[2]{等。例如:<br /> var regx=/user\d/;<br /> var rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var value1=rs[0];<br /> rs=regx.exec(“sdsfuser1dfsfuser2”);<br /> var value2=rs[0]; <br /> value1的gؓuser1,value2的gؓuser2</p> <p>5Q实际应?/p> <p>1Q实际应用一<br /> 描述Q有一表单Q其中有一?#8220;用户?#8221;input?br /> 要求Q汉字,而且不能于2个汉字,不能多于4个汉字?br /> 实现Q?br /> <script><br /> function checkForm(obj){<br />      var username=obj.username.value;<br />      var regx=/^[\u4e00-\u9fa5]{2,4}$/g<br />      if(!regx.test(username)){<br />                alert(“Invalid username!”);<br />                return false; <br />      }<br />      return true;<br /> }<br /> </script><br /> <form name=“myForm”onSubmit=“return checkForm(this)”><br />     <input type=“text” name=“username”/><br />     <input type=“submit” vlaue=“submit”/><br /> </form><br /> 2Q实际应用二<br /> 描述Q给定一个含有html标记的字W串Q要求将其中的html标记L?br /> 实现Q?br /> <script><br /> function toPlainText(htmlStr){<br />      var regx=/<[^>]*>|<\/[^>]*>/gm;<br />      var str=htmlStr.replace(regx,"");<br />      return str;<br /> }<br /> </script><br /> <form name=“myForm”><br />     <textarea id=“htmlInput”></textarea><br />     <input type=“button” value=“submit” onclick=“toPlainText(document.getElementById(‘htmlInput’).value”/><br /> </form></p> <p>三,结</p> <p>1QJavascript正则表达式,我想在一般的E序员之中,使用者应该不是很多,因ؓ我们处理的页面一般都不是很复杂,而复杂的逻辑一般我们都在后台处理完成了。但是目前趋势已l出C扭{Q富客户端已l被来多的h接受Q而Javascript是其中的关键技术,对于复杂的客L逻辑而言Q正则表辑ּ的作用也是很关键的,同时它也是Javascript高手必须要掌握的重要技术之一?/p> <p>2Qؓ了能够便于大家对前面讲述的内Ҏ一个更为综合和深刻的认识,我将前面的一些关键点和容易犯p涂的地方再pȝȝ一下,q部分很关键Q?br /> ȝ1Q附件参数g的用?br /> 表达式加上参数g之后Q表明可以进行全局匚wQ注意这?#8220;可以”的含义。我们详l叙qͼ<br /> 1Q对于表辑ּ对象的execҎQ不加入gQ则只返回第一个匹配,无论执行多少ơ均是如此,如果加入gQ则W一ơ执行也q回W一个匹配,再执行返回第二个匚wQ依ơ类推。例?br /> var regx=/user\d/;<br /> var str=“user18dsdfuser2dsfsd”;<br /> var rs=regx.exec(str);//此时rs的gؓ{user1}<br /> var rs2=regx.exec(str);//此时rs的g然ؓ{user1}<br /> 如果regx=/user\d/gQ则rs的gؓ{user1}Qrs2的gؓ{user2}<br /> 通过q个例子说明Q对于execҎQ表辑ּ加入了gQƈ不是说执行execҎ可以返回所有的匚wQ而是说加入了g之后Q我可以通过某种方式得到所有的匚wQ这里的“方式”对于exec而言Q就是依ơ执行这个方法即可?br /> 2Q对于表辑ּ对象的testҎQ加入g于不加上g没有什么区别?br /> 3Q对于String对象的matchҎQ不加入gQ也只是q回W一个匹配,一直执行matchҎ也Lq回W一个匹配,加入gQ则一ơ返回所有的匚wQ注意这与表辑ּ对象的execҎ不同Q对于exec而言Q表辑ּ即加上了gQ也不会一ơ返回所有的匚wQ。例如:<br /> var regx=/user\d/;<br /> var str=“user1sdfsffuser2dfsdf”;<br /> var rs=str.match(regx);//此时rs的gؓ{user1}<br /> var rs2=str.match(regx);//此时rs的g然ؓ{user1}<br /> 如果regx=/user\d/gQ则rs的gؓ{user1,user2}Qrs2的g为{user1,user2}<br /> 4Q对于String对象的replaceҎQ表辑ּ不加入gQ则只替换第一个匹配,如果加入gQ则替换所有匹配。(开头的三道试题能很好的说明这一点)<br /> 5Q对于String对象的splitҎQ加上g与不加g是一LQ即Q?br /> var sep=/user\d/;<br /> var array=“user1dfsfuser2dfsf”.split(sep);<br /> 则array的gؓ{dfsf, dfsf}<br /> 此时sep=/user\d/gQ返回值是一L?br /> 6Q对于String对象的searchҎQ加不加g也是一L?br /> ȝ2Q附加参数m的用?br /> 附加参数mQ表明可以进行多行匹配,但是q个只有当用^?模式时才会v作用Q在其他的模式中Q加不加入m都可以进行多行匹配(其实说多行的字符串也是一个普通字W串Q,我们举例说明q一?br /> 1Q用^的例?br /> var regx=/^b./g;<br /> var str=“bd76 dfsdf<br />          sdfsdfs dffs<br />          b76dsf sdfsdf”;<br /> var rs=str.match(regx);<br /> 此时加入g和不加入gQ都只返回第一个匹配{bd}Q如果regx=/^b./gmQ则q回所有的匚w{bd,b7}Q注意如果regx=/^b./mQ则也只q回W一个匹配。所以,加入m表明可以q行多行匚wQ加入g表明可以q行全局匚wQ综合到一起就是可以进行多行全局匚w<br /> 2Q用其他模式的例子Q例?br /> var regx=/user\d/;<br /> var str=“sdfsfsdfsdf<br />          sdfsuser3 dffs<br />          b76dsf user6”;<br /> var rs=str.match(regx);<br /> 此时不加参数gQ则q回{user3}Q加入参数gq回{user3,user6}Q加不加入mҎ没有影响?br /> 3Q因此对于m我们要清楚它的用,C它只对^?模式起作用,在这两种模式中,m的作用ؓQ如果不加入mQ则只能在第一行进行匹配,如果加入m则可以在所有的行进行匹配。我们再看一个^的例?br /> var regx=/^b./;<br /> var str=“ret76 dfsdf<br />          bjfsdfs dffs<br />          b76dsf sdfsdf”;<br /> var rs=str.match(regx);<br /> 此时rs的gؓnullQ如果加入gQrs的g然ؓnullQ如果加入mQ则rs的gؓ{bj}Q也是_在第一行没有找到匹配,因ؓ有参数mQ所以可以l去下面的行L是否有匹配)Q如果m和g都加上,则返回{bj,b7}Q只加m不加g说明Q可以去多行q行匚wQ但是找C个匹配后p回,加入g表明多行中所有的匚wq回Q当然对于matchҎ是如此,对于exec呢,则需要执行多ơ才能依ơ返回)<br /> ȝ3Q在HTML的textarea输入域中Q按一个Enter键,对应的控制字Wؓ“\r\n”Q即“回R换行”Q而不?#8220;\n\r”Q即“换行回R”Q我们看一个前面我们Dq的例子Q?br /> var regx=/a\r\nbc/;<br /> var str=“a<br />          bc”;<br /> var rs=regx.exec(str);<br /> l果Q匹配成功,rs的gؓQ{      }Q如果表辑ּ?a\n\rbc/Q则不会被匹配,因此在一般的~辑器中一?#8221;Enter”键代表着“回R换行”Q而非“换行回R”Q至在textarea域中是这L?/p> <p>四,应用案例</p> <p>1Q正则表辑ּ使用场景Q?br /> 1Q登录场景,查用戯入的用户名,要求Q?br /> 字符长度??8之间<br /> 字符必须为字母、数字或者下划线的组?br /> 2Q购物场景,对于商品列表的描qͼ标签、条形码、单P{有些用户可能会提出下面需求:<br /> 希望可以对商品列表的某一列描q进行字L自定义,而且下次d仍然保持用户的修?br /> 2Q下面看一下在上述两个场景中,正则表达式的使用方式和具体实现?/p> <p>1Q登录场景部分正则表辑ּ实现<br /> <a target="_blank"><img style="border-left-color: #808080; border-bottom-color: #808080; border-top-color: #808080; border-right-color: #808080" border="1" hspace="0" alt="查看更多_ֽ囄" src="http://photo9.hexun.com/p/2007/0930/132864/b_F8732D184F104231E77201F93680D3A1.jpg" width="500" height="190" /></a></p> <p>2Q购物场景部分正则表辑ּ实现<br /> 1>需求分析:用户希望可以对商品列表的某一列描q进行字L自定义,而且下次d仍然保持用户的修?/p> <p><a target="_blank"><img style="border-left-color: #808080; border-bottom-color: #808080; border-top-color: #808080; border-right-color: #808080" border="1" hspace="0" alt="查看更多_ֽ囄" src="http://photo9.hexun.com/p/2007/0930/132865/b_11B3570A3CB94EC6C44F588D21E6F0E4.jpg" width="500" height="275" /></a></p> <p>2>E序设计</p> <p> </p> <p><a target="_blank"><img border="0" alt="查看更多_ֽ囄" src="http://photo9.hexun.com/p/2007/0930/132866/b_FFDCC763D2185C4864BE3D203F4B7073.jpg" /></a></p> <p>cdQ?br /> <a target="_blank"><img style="border-left-color: #808080; border-bottom-color: #808080; border-top-color: #808080; border-right-color: #808080" border="1" hspace="0" alt="查看更多_ֽ囄" src="http://photo9.hexun.com/p/2007/0930/132866/b_7DA5AC842608E3B2B3BA3EC515665059.jpg" width="500" height="245" /></a><br /> <br /> 3>代码实现<br /> PageSettingc?br /> <br /> <br /> <br /> //验证email格式是否合法<br /> function checkEmail(email)<br /> {<br />    var reEmail=/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,5}/;<br />         if (!(email.match(reEmail)&&email!=""))<br />         {<br />              return false;<br />         }<br />         else {<br />     return true;<br />   <br />    }<br /> }</p> </div> </td> </tr> </tbody> </table> <img src ="http://www.tkk7.com/b47248054/aggbug/205560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/b47248054/" target="_blank">sofot</a> 2008-06-03 14:49 <a href="http://www.tkk7.com/b47248054/articles/205560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>奥运倒计?/title><link>http://www.tkk7.com/b47248054/articles/200688.html</link><dc:creator>sofot</dc:creator><author>sofot</author><pubDate>Thu, 15 May 2008 09:33:00 GMT</pubDate><guid>http://www.tkk7.com/b47248054/articles/200688.html</guid><wfw:comment>http://www.tkk7.com/b47248054/comments/200688.html</wfw:comment><comments>http://www.tkk7.com/b47248054/articles/200688.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/b47248054/comments/commentRss/200688.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/b47248054/services/trackbacks/200688.html</trackback:ping><description><![CDATA[     摘要: 服务器时间倒计? //格式化输出服务器旉 function getSeverTime(){          var xmlHttp = false; //获取服务器时?try { xmlHttp = new Acti...  <a href='http://www.tkk7.com/b47248054/articles/200688.html'>阅读全文</a><img src ="http://www.tkk7.com/b47248054/aggbug/200688.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/b47248054/" target="_blank">sofot</a> 2008-05-15 17:33 <a href="http://www.tkk7.com/b47248054/articles/200688.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript+java截取囑փQ图像处?/title><link>http://www.tkk7.com/b47248054/articles/200685.html</link><dc:creator>sofot</dc:creator><author>sofot</author><pubDate>Thu, 15 May 2008 09:15:00 GMT</pubDate><guid>http://www.tkk7.com/b47248054/articles/200685.html</guid><wfw:comment>http://www.tkk7.com/b47248054/comments/200685.html</wfw:comment><comments>http://www.tkk7.com/b47248054/articles/200685.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/b47248054/comments/commentRss/200685.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/b47248054/services/trackbacks/200685.html</trackback:ping><description><![CDATA[     摘要: 很多|站都希望用户上传的头像不变形,同时又不希望由公司编辑来q行头像的处理; 下面q个E序会让你眼前一亮;javascript+java实现用户上传头像q且可按照规定头像长宽比例截图; 文g1Qindex.htm  (上传文g面Q?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0&nb...  <a href='http://www.tkk7.com/b47248054/articles/200685.html'>阅读全文</a><img src ="http://www.tkk7.com/b47248054/aggbug/200685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/b47248054/" target="_blank">sofot</a> 2008-05-15 17:15 <a href="http://www.tkk7.com/b47248054/articles/200685.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DIV+CSS布局中的IE与FF兼容问题!http://www.tkk7.com/b47248054/articles/190229.htmlsofotsofotTue, 01 Apr 2008 15:22:00 GMThttp://www.tkk7.com/b47248054/articles/190229.htmlhttp://www.tkk7.com/b47248054/comments/190229.htmlhttp://www.tkk7.com/b47248054/articles/190229.html#Feedback0http://www.tkk7.com/b47248054/comments/commentRss/190229.htmlhttp://www.tkk7.com/b47248054/services/trackbacks/190229.html在ff试div+css的过E中发现不少问题Q主要原因是代码的不规范书写?/strong>

1、居中问?br /> div里的内容Qie默认为居中,而ff默认为左寚w?br /> 使ff内容居中的方法是增加代码margin:auto;

 

2、高度问?/strong>
设有两横行div排列Q上面的div讄高度(height)Q如果div里的实际内容大于所N度,在ff中会出现两个div重叠的现象;但在ie中, 下面的div会自动给上面的div让出I间。所以ؓ避免出现层的重叠Q高度一定要控制恰当Q或者干脆不写高度,让他自动调节?br /> 或者设|:overflow:hidden

 

3、clear:both;
拿footerZQ有时候如果上面?了float控制的n列的布局Q那么在用ff览时footer很有可能不老实Q到处ؕ动——因Zq在受到动QfloatQ的控制。如果想让它老老实 实呆在页面下方,在footer的div中写入clear:both;可以达到效果了Q?/font>

 

4、Q动ie产生的双倍距?/strong>

#box{
float:left;
width:100px;
margin:0 0 0 100px; //q种情况之下IE会?00px的距?br /> display:inline; //使Q动忽?br /> }


5、重点讲解:display:block,inline两个元素 display(昄)
display:block; //可以为内嵌元素模拟ؓ块元?br /> display:inline; //实现同一行排列的的效?br /> diplay:table; //for ff,模拟table的效?/font>

Display:block元素的特ҎQ?br /> L在新行上开始;
高度Q行高以及顶和底边距都可控制Q?br /> 宽度~省是它的容器的100%Q除非设定一个宽?br /> <div>, <p>, <h1>, <form>, <ul> ?<li>是块元素的例子?/font>

display:inline是元素显CZؓ行内元素.
inline元素的特ҎQ?br /> 和其他元素都在一行上Q?br /> 高,行高及顶和底边距不可改变Q?br /> 宽度是它的文字或图片的宽度Q不可改变?br /> <span>, <a>, <label>, <input>, <img>, <strong> ?lt;em>是inline元素的例子?/font>

例子Q?/p>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文?/span></title>
<style type="text/css">
#inline
{width:400px; height:40px;background:#99CCCC;padding:15px 0px 0px 15px}
#inline ul
{ margin:0px; list-style:none;}
#inline ul li
{display:inline; font-size:12px;margin-left:5px}
#block
{width:400px; height:40px;background:#FFCC99;padding:15px 0px 0px 15px}
#block ul
{ margin:0px; list-style:none;}
#block ul li
{display:block; font-size:12px;height:20px}
#div_inline
{ width:800px;display:inline;height:120px;}
</style>
</head>
<body>
<div id="inline">
<ul>
<li>天天招生|?br /> <li>心血网
<li>高血压网
<li>先心病网
</ul>
</div>
<p>
<div id="block">
<ul>
<li>天天招生|?/span></li>
<li>心血网</li>
<li>高血压网</li>
<li>先心病网</li>
</ul>
</div>
</p>
</body></html>


6、IE与FF宽度和高度的问题
min -width是个非常方便的CSS命oQ它可以指定元素最也不能于某个宽度Q这样就能保证排版一直正。整体最H?70pxQ最?024pxQ也?是说H口于770xp出底部滚动条,如果大于1024px自动屏幕居中。IE不认得min-q个定义Q但实际上它把正常的width和height?作有min的情冉|ѝ这P如果只用宽度和高度,正常的浏览器里这两个值就不会变,如果只用min-width和min-height的话QIE下面?本等于没有设|宽度和高度?br /> CSSq样设计Q?/p>

#container{
min-width: 600px;
width:expression(document.body.clientWidth 
< 600? "600px": "auto" );
}

W一个min-width是正常的Q但W?行的width使用了JavascrīptQ这只有IE才认得,q也会让你的HTML文档不太正规。它实际上通过Javascrīpt的判断来实现最宽度?/font>

同样的办法也可以为IE实现最大宽度:

#container
{
min-width: 600px;
max-width: 1200px;
width:expression(document.body.clientWidth 
< 600? "600px" : document.body.clientWidth > 1200? ”1200px“ : ”auto";
}


7、FF: 支持 !important, IE 则忽?
可用 !important Q例Qheight:30px!important; height:26px;Qؓ FF 特别讄样式
div 的垂直居中问? vertical-align:middle; 行距增加到和整个DIV一样高 line-height:200px; 然后插入文字Q就垂直居中了。缺Ҏ要控制内容不要换?br /> cursor: pointer 可以同时?IE FF 中显C游标手指状Q?hand ?IE 可以
FF: 链接加边框和背景Ԍ需讄 display: block, 同时讄 float: left 保证不换行(背景囄需要设|?float: left Q。参?menubar, l?a ?menubar 讄高度是ؓ了避免底ҎC错? 若不?height, 可以?menubar 中插入一个空?br /> 在FF和IE中的BOX模型解释不一致导致相?px解决ҎQ?br /> div{margin:30px!important;margin:28px;}

注意q两个margin的顺序一定不能写反,据阿L说法!importantq个属性IE不能识别Q但别的览器可以识别。所以在IE下其实解释成q样Q?/p>

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{maring:30px;margin:28px}

重复定义的话按照最后一个来执行Q所以不可以只写margin:XXpx!important;


在Firefox/Mozilla 览器中Q对象的实际宽度= (margin-left) + (border-left-width) + (padding- left) + width + (padding-right) + (border-right-width) + (margin-right)Q而在IE/Opera览器中Q对象的实际宽度 = (margin-left) + width + (margin-right)?

sofot 2008-04-01 23:22 发表评论
]]>
FireFox与IE开发上的一些区??http://www.tkk7.com/b47248054/articles/188504.htmlsofotsofotTue, 25 Mar 2008 07:56:00 GMThttp://www.tkk7.com/b47248054/articles/188504.htmlhttp://www.tkk7.com/b47248054/comments/188504.htmlhttp://www.tkk7.com/b47248054/articles/188504.html#Feedback0http://www.tkk7.com/b47248054/comments/commentRss/188504.htmlhttp://www.tkk7.com/b47248054/services/trackbacks/188504.html    1.  window.event

          * IEQ有window.event对象
          * FFQ没有window.event对象。可以通过l函数的参数传递event对象。如onmousemove=doMouseMove(event)

   2. 鼠标当前坐标

          * IEQevent.x和event.y?br />           * FFQevent.pageX和event.pageY?br />           * 通用Q两者都有event.clientX和event.clientY属性?br />
   3. 鼠标当前坐标(加上滚动条滚q的距离)

          * IEQevent.offsetX和event.offsetY?br />           * FFQevent.layerX和event.layerY?br />
   4. 标签的x和y的坐标位|:style.posLeft ?style.posTop

          * IEQ有?br />           * FFQ没有?br />           * 通用Qobject.offsetLeft ?object.offsetTop?br />
   5. H体的高度和宽度

          * IEQdocument.body.offsetWidth和document.body.offsetHeight。注意:此时面一定要有body标签?br />           * FFQwindow.innerWidth和window.innerHegihtQ以及document.documentElement.clientWidth和document.documentElement.clientHeight?br />           * 通用Qdocument.body.clientWidth和document.body.clientHeight?br />
   6. d事g

          * IEQelement.attachEvent("onclick", func);?br />           * FFQelement.addEventListener("click", func, true)?br />           * 通用Qelement.onclick=func。虽焉可以使用onclick事gQ但是onclick和上面两U方法的效果是不一LQonclick 只有执行一个过E,而attachEvent和addEventListener执行的是一个过E列表,也就是多个过E。例如: element.attachEvent("onclick", func1);element.attachEvent("onclick", func2)q样func1和func2都会被执行?br />
   7. 标签的自定义属?/span>

          * IEQ如果给标签div1定义了一个属性valueQ可以div1.value和div1["value"]取得该倹{?br />           * FFQ不能用div1.value和div1["value"]取?br />           * 通用Qdiv1.getAttribute("value")?br />
   8. 父节炏V子节点和删除节?/span>

          * IEQparentElement、parement.childrenQelement.romoveNode(true)?br />           * FFQparentNode、parentNode.childNodesQnode.parentNode.removeChild(node)?br />
   9. d

          * IEQVML?br />           * FFQSVG?br />
  10. CSSQ透明

          * IEQfilter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)?br />           * FFQopacity:0.6?br />
  11. CSSQ圆?/span>

          * 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 />
  12. CSSQ双U凹凸边?/span>


          * 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 />
  13. 其它Q待整理Q?/span>
  FireFox: div 讄 margin-left, margin-right ?auto 时已l居? IE 不行

  FireFox: body 讄 text-align ? div 需要设|?margin: auto(主要?margin-left,margin-right) 方可居中

  FireFox: 讄 padding ? div 会增?height ?width, ?IE 不会, 故需要用 !important 多设一?height ?width

  FireFox: 支持 !important, IE 则忽? 可用 !important 为 FireFox 特别讄样式

  div 的垂直居中问? vertical-align:middle; 行距增加到和整个DIV一样高 line-height:200px; 然后插入文字Q就垂直居中了。缺Ҏ要控制内容不要换?br />
  cursor: pointer 可以同时?IE FireFox 中显C游标手指状Q?hand ?IE 可以

  FireFox: 链接加边框和背景Ԍ需讄 display: block, 同时讄 float: left 保证不换行。参?menubar, l?a ?menubar 讄高度是ؓ了避免底ҎC错? 若不?height, 可以?menubar 中插入一个空?br />
  XHTML+CSS兼容性解x案小?br />   使用XHTMLQCSS构架好处不少Q但也确实存在一些问题,不论是因Z用不熟练q是思\不清晎ͼ我就先把一些我遇到的问题写在下?
  1.在mozilla firefox和IE中的BOX模型解释不一致导致相?px解决ҎQ?br />   div{margin:30px!important;margin:28px;}注意q两个margin的顺序一定不能写反,据阿L说法!importantq个属性IE不能识别Q但别的览器可以识别。所以在IE下其实解释成q样Q?br />   div{maring:30px;margin:28px}重复定义的话按照最后一个来执行Q所以不可以只写margin:XXpx!important;
[url=http://bbs.itokit.com/][color=white]http://bbs.itokit.com/[/color][/url][color=white]  专业的web开发交论坛[/color]
  2.IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释ؓ300px-10px(叛_?-10px(左填?最ldiv的宽度ؓ280pxQ而在IE6和其他浏览器上宽度则是以300px+10px(叛_?+10px(左填?=320px来计的。这时可以做如下修改
  div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}

  3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义
  ul{margin:0;padding:0;}p解决大部分问?br />
  4.关于脚本Q在xhtml1.1中不支持language属性,只需要把代码改ؓ
  <script type=”text/javascript”>
  FireFox: div 讄 margin-left, margin-right ?auto 时已l居? IE 不行
  IE怎么不行? .div{width:100px;margin:0 auto;}一样居?br />   FireFox: 讄 padding ? div 会增?height ?width, ?IE 不会, 故需要用 !important 多设一?height ?width
  q个是ie对css盒模型解释有问题造成?只能q就它网|学网
  FireFox: 支持 !important, IE 则忽? 可用 !important 为 FireFox 特别讄样式
  IE7 一样兼?!important ?br />   cursor: pointer 可以同时?IE FireFox 中显C游标手指状Q?hand ?IE 可以
  pointer是标准的写法,hand是ie6之前版本自行定义?br />
  补充:
  ie6有margin双倍外补丁bug,需要做css .hack
  firefox更符合标?在Q动和清除动上需要特别注?而ie定w性比较好
  ie中height于一定?可能?8px)?可能会在面上体C出来,需要overflow:hidden;而firefox可以完全体现height;
  装好ie6 ie7 ff2大致写个一两个面q道大概的不同?其实不难
  屏蔽IE览器(也就是IE下不昄Q?br />   *:lang(zh) select {font:12px !important;} /*FF的专?/
  select:empty {font:12px !important;} /*safari可见*/
  q里select是选择W,Ҏ情况更换。第二句是MAC上safari览器独有的?br />
  仅IE7识别
  *+html {…}
  当面临需要只针对IE7做样式的时候就可以采用q个HACK?br />   IE6及IE6以下识别
  * html {…}
  q个地方要特别注意很多地主都写了是IE6的HACK其实IE5.x同样可以识别q个HACK。其它浏览器不识别?br />   html/**/ >body select {……}|页教学|?br />   q句与上一句的作用相同?br />   仅IE6不识?br />   select { display /*IE6不识?/:none;}
  q里主要是通过CSS注释分开一个属性与|释在冒号前?br />   仅IE6与IE5不识?br />   select/**/ { display /*IE6,IE5不识?/:none;}
  q里与上面一句不同的是在选择W与花括号之间多了一个CSS注释?br />   仅IE5不识?br />   select/*IE5不识?/ { display:none;}
  q一句是在上一句中L了属性区的注释。只有IE5不识?br />   盒模型解x?br />   selct {width:IE5.x宽度; voice-family :""}""; voice-family:inherit; width:正确宽度;}
  盒模型的清除Ҏ不是通过!important来处理的。这点要明确?br />   清除动
  select:after {content:"."; display:block; height:0; clear:both; visibility:hidden;}
  在Firefox中,当子U都为Q动时Q那么父U的高度无法完全的包住整个子Q那么这时用q个清除动的HACK来对父做一ơ定义,那么可以解册个问??br />
  截字省略?br />   select { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
  q个是在出长度后会自行的截掉多出部分的文字Qƈ以省略号l尾Q很好的一个技术。只是目前Firefoxq不支持?

sofot 2008-03-25 15:56 发表评论
]]>
վ֩ģ壺 ؼëƬȫѲaһ| baoyu116.Ƶ| ŷ޾Ʒ˾þ | Ʒ| ޹ƷþSM | һ߲| 99þþùƷţţĴ| 123Һ| AV뾫Ʒɫҹ| ۲ӰԺѹۿ| պƷһůů| AVɫ߹ۿ| ༤ۺ͵| һѹۿ | ˳wwwþþ| 84paoǿѸ | ѵһƬվ| þ99ƷƵ| Ƶѹۿ| av| ˳77777߲վ| ѹۿëƬֻƵ| Ļ2019| 99Ƶ| ˾ҹƷƵ߹ۿ| Ƶ| ˾þô߽| ѿƬִֻ| Ʒ˹ۿƵ| aëƬ߹ۿ| վ߲Ƶѹۿ | ˳ëƬ߲| ۺ| ɫϰƵ߹| ɫ߸߳ӰԺ| ޺ݺۺϾþþþ| avһ߹ۿ| aëƬ| hƬѹۿ| ŷ޾Ʒ99ëƬѸۿ| XXX2߹ۿƵ|