一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Frontend

简单针对IE6,7,8的CSS hack

  刚好看到有这么一篇文章,翻译过来给需要的人看看,同时也给自己看看。 body{ color:red; //所有浏览器 color:yellow\9; //IE8及以下 *color:blue; //IE7及以下 _color:gray; //IE6 } 值得注意的是\9是针对IE8及以下版本(未测试是否包含IE6以下版本),而如果是color:orange/0;把9换成0就是只针对IE8的hack了。 同时还要注意,条件注释(conditional comments)是一种更好的hack方式。 <!–[if IE 6]> body{ color:green; //IE6 } <![endif]–> 本文翻译自http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-how-to-target-ie6-ie7-and-ie8-uniquely-with-4-characters/ 并做细微修改。 http://http://www.ediyang.com/how-to-target-ie6-ie7-and-ie8/

龙生   19 Feb 2013
View Details

KinSlideshow参数设置说明

  Jquery.KinSlideshow参数设置说明: 附:所有参数列表   intervalTime:5,   //设置间隔时间为5秒 【单位:秒】 [默认为5秒]  moveSpeedTime:400   //切换一张图片所需时间,【单位:毫秒】[默认为400毫秒]   moveStyle:”left”,   //切换方向 可选值:【 left | right | up | down 】 //left:向左切换,right:向右切换,up:向上切换,down:向下切换 [默认向左切换]   mouseEvent:”mouseclick”,   //鼠标操作按钮事件,可选值:【mouseclick | mouseover】 //mouseclick:鼠标单击切换。mouseover:鼠标滑过切换。[默认为鼠标点击按钮切换]  isHasTitleBar:true,   //是否显示标题背景 可选值:【 true | false 】[默认为true]   titleBar:{titleBar_height:40,titleBar_bgColor:”#000000″,titleBar_alpha:0.5}, //标题背景样式,(isHasTitleBar = true 前提下启用)    titleBar_height :40 – > 标题背景高度。[默认:40]    titleBar_bgColor:”#000000″ – > 标题背景颜色。[默认:#000000]    titleBar_alpha:0.5 -> 标题背景透明度,取值【0~1】。[默认:0.5]   isHasTitleFont:true,  //是否显示标题文字 可选值:【 true | false 】[默认为true]  titleFont:{TitleFont_size:12,TitleFont_color:”#FFFFFF”,TitleFont_family:”Verdana”,TitleFont_weight:”bold”},  //标题文字样式,(isHasTitleFont = true 前提下启用)    TitleFont_size – > 标题文字大小 单位像素。[默认:12]    TitleFont_color:”#FFFFFF” – > 标题文字颜色。[默认:#000000]    TitleFont_family:”Verdana” -> 标题文字字体。[默认:Verdana]    TitleFont_weight:”bold” -> 标题文字粗细。 //可选值:【 bold | normal 】[默认:"bold"]  ,normal 正常 不加粗。   isHasBtn:true, //是否显示按钮   btn:{btn_bgColor:”#666666″,btn_bgHoverColor:”#CC0000″,    btn_fontColor:”#CCCCCC”,btn_fontHoverColor:”#000000″,btn_fontFamily:”Verdana”,   btn_borderColor:”#999999″,btn_borderHoverColor:”#FF0000″,    btn_borderWidth:1,btn_bgAlpha:0.7} //按钮样式设置,(isHasBtn = true 前提下启用)    btn_bgColor:”#666666″ -> 按钮背景颜色 [默认:"#666666"]。    btn_bgHoverColor:”#CC0000″ -> 按钮滑过/点击 背景颜色 [默认:"#CC0000"]。    btn_fontColor:”#CCCCCC” -> 按钮文字颜色 [默认:"#CCCCCC"]。    btn_fontHoverColor:”#000000″ -> 按钮滑过/点击 按钮文字颜色  [默认:"#000000"]。    btn_fontFamily:”Verdana”, -> 按钮文字字体 [默认:"Verdana"]。    btn_borderColor:”#999999″ -> 按钮边框颜色 [默认:"#999999"]。    btn_borderHoverColor:”#FF0000″ -> 按钮滑过/点击 按钮边框颜色  [默认:"#FF0000"]。    btn_borderWidth:1 -> 按钮边框宽度,单位像素不能超过3 [默认:1]。    btn_bgAlpha:0.7 -> 按钮透明度 ,取值【0~1】 [默认:0.7]。   【多项复合】参数调用说明    $(function(){    $(“#KinSlideshow”).KinSlideshow({    titleFont:{TitleFont_size:14,TitleFont_color:”#FF0000″}  //设置标题文字大小为14px,颜色:#FF0000 【titleFont 其他未设置的 使用默认参数设置】    });    })  转自:http://blog.sina.com.cn/s/blog_4f4f4a5901014zn1.html

龙生   19 Feb 2013
View Details

javascript事件列表解说

  javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3、N2 鼠标点击时触发此事件 ondblclick IE4、N4 鼠标双击时触发此事件 onmousedown IE4、N4 按下鼠标时触发此事件 onmouseup IE4、N4 鼠标按下后松开鼠标时触发此事件 onmouseover IE3、N2 当鼠标移动到某对象范围的上方时触发此事件 onmousemove IE4、N4 鼠标移动时触发此事件 onmouseout IE4、N3 当鼠标离开某对象范围时触发此事件 onkeypress IE4、N4 当键盘上的某个键被按下并且释放时触发此事件. onkeydown IE4、N4 当键盘上某个按键被按下时触发此事件 onkeyup IE4、N4 当键盘上某个按键被按放开时触发此事件 页面相关事件 onabort IE4、N3 图片在下载时被用户中断 onbeforeunload IE4、N 当前页面的内容将要被改变时触发此事件 onerror IE4、N3 出现错误时触发此事件 onload IE3、N2 页面内容完成时触发此事件 onmove IE、N4 浏览器的窗口被移动时触发此事件 onresize IE4、N4 当浏览器的窗口大小被改变时触发此事件 onscroll IE4、N 浏览器的滚动条位置发生变化时触发此事件 onstop IE5、N 浏览器的停止按钮被按下时触发此事件或者正在下载的文件被中断 onunload IE3、N2 当前页面将被改变时触发此事件 表单相关事件 onblur IE3、N2 当前元素失去焦点时触发此事件 onchange IE3、N2 当前元素失去焦点并且元素的内容发生改变而触发此事件 onfocus IE3 、N2 当某个元素获得焦点时触发此事件 onreset IE4 、N3 当表单中RESET的属性被激发时触发此事件 onsubmit IE3 、N2 一个表单被递交时触发此事件 滚动字幕事件 onbounce IE4、N 在Marquee内的内容移动至Marquee显示范围之外时触发此事件 onfinish IE4、N 当Marquee元素完成需要显示的内容后触发此事件 onstart […]

龙生   19 Feb 2013
View Details

JS实现浏览器菜单命令

  一、【文件(F)】菜单中的命令的实现 1、〖打开〗命令的实现 [格式]:document.execCommand(“open”) [说明]这跟VB等编程设计中的webbrowser控件中的命令有些相似,大家也可依此琢磨琢磨。 [举例]在<body></body>之间加入: 打开 2、〖使用 记事本 编辑〗命令的实现 [格式]:location.replace(“view-source:”+location) [说明]打开记事本,在记事本中显示该网页的源代码。 [举例]在<body></body>之间加入: 使用 记事本 编辑 3、〖另存为〗命令的实现 [格式]:document.execCommand(“saveAs”) [说明]将该网页保存到本地盘的其它目录! [举例]在<body></body>之间加入: 另存为 4、〖打印〗命令的实现 [格式]:document.execCommand(“print”) [说明]当然,你必须装了打印机! [举例]在<body></body>之间加入: 打印 5、〖关闭〗命令的实现 [格式]:window.close();return false [说明]将关闭本窗口。 [举例]在<body></body>之间加入: 关闭本窗口 二、【编辑(E)】菜单中的命令的实现 〖全选〗命令的实现 [格式]:document.execCommand(“selectAll”) [说明]将选种网页中的全部内容! [举例]在<body></body>之间加入: 全选 三、【查看(V)】菜单中的命令的实现 1、〖刷新〗命令的实现 [格式]:location.reload() 或 history.go(0) [说明]浏览器重新打开本页。 [举例]在<body></body>之间加入: 刷新 或加入:刷新 2、〖源文件〗命令的实现 [格式]:location.replace(“view-source:”+location) [说明]查看该网页的源代码。 [举例]在<body></body>之间加入: 查看源文件 3、〖全屏显示〗命令的实现 [格式]:window.open(document.location,”url”,”fullscreen”) [说明]全屏显示本页。 [举例]在<body></body>之间加入: 全屏显示 四、【收藏(A)】菜单中的命令的实现 1、〖添加到收藏夹〗命令的实现 [格式]:window.external.AddFavorite(‘url’, ‘“网站名”) [说明]将本页添加到收藏夹。 [举例]在<body></body>之间加入: 添加到收藏夹 2、〖整理收藏夹〗命令的实现 [格式]:window.external.showBrowserUI(“OrganizeFavorites”,null) [说明]打开整理收藏夹对话框。 [举例]在<body></body>之间加入: 整理收藏夹 五、【工具(T)】菜单中的命令的实现 〖internet选项〗命令的实现 [格式]:window.external.showBrowserUI(“PrivacySettings”,null) [说明]打开internet选项对话框。 [举例]在<body></body>之间加入: internet选项 六、【工具栏】中的命令的实现 1、〖前进〗命令的实现 [格式]history.go(1) 或 history.forward() [说明]浏览器打开后一个页面。 [举例]在<body></body>之间加入: 前进 或加入:前进 2、〖后退〗命令的实现 [格式]:history.go(-1) 或 history.back() [说明]浏览器返回上一个已浏览的页面。 [举例]在<body></body>之间加入: 后退 或加入:后退 3、〖刷新〗命令的实现 [格式]:document.reload() 或 history.go(0) [说明]浏览器重新打开本页。 [举例]在<body></body>之间加入: 刷新 或加入:刷新 七、其它命令的实现 〖定时关闭本窗口〗命令的实现 […]

龙生   19 Feb 2013
View Details

showModalDialog和showModelessDialog使用心得

一、showModalDialog和showModelessDialog有什么不同?   showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。   showModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P) 二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?   在被打开的网页里加上<base target=”_self”>就可以了。这句话一般是放在<html>和<body>之间的。 三、怎样才刷新showModalDialog和showModelessDialog里的内容?   在showModalDialog和showModelessDialog里是不能按F5刷新的,又不能弹出菜单。这个只能依靠javascript了,以下是相关代码: <body onkeydown=”if (event.keyCode==116){reload.click()}”> <a id=”reload” href=”filename.htm” style=”display:none”>reload…</a> 将filename.htm替换成网页的名字然后将它放到你打开的网页里,按F5就可以刷新了,注意,这个要配合<base target=”_self”>使用,不然你按下F5会弹出新窗口的。 四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。   <input type=”button” value=”关闭” onclick=”window.close()”>   也要配合<base target=”_self”>,不然会打开一个新的IE窗口,然后再关掉的。 五、showModalDialog和showModelessDialog数据传递技巧。   (作者语:本来想用一问一答形式来写的,但是我想不出这个怎么问,所以只好这样了。)   这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。   例子:     现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name 一般的传递方式:         window.showModalDialog(“filename.htm”,var_name)         //传递var_name变量       在showModalDialog(或showModelessDialog)读取和设置时:         alert(window.dialogArguments)//读取var_name变量         window.dialogArguments=”oyiboy”//设置var_name变量     这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。            以下是我建议使用的传递方式:         window.showModalDialog(“filename.htm”,window)         //不管要操作什么变量,只直传递主窗口的window对象       在showModalDialog(或showModelessDialog)读取和设置时:         alert(window.dialogArguments.var_name)//读取var_name变量         window.dialogArguments.var_name=”oyiboy”//设置var_name变量 同时我也可以操作var_id变量         alert(window.dialogArguments.var_id)//读取var_id变量         window.dialogArguments.var_id=”001″//设置var_id变量 同样还可以对主窗口的任何对象进行操作,如form对象里的元素。         window.dialogArguments.form1.index1.value=”这是在设置index1元素的值” 六、多个showModelessDialog的相互操作。   因为光说很费劲,我就偷点懒,直接用代码来说了,如果不明白的话那就直接来信(oyiboy#163.net(使用时请将#改成@))问我吧。 以下代码的主要作用是在一个showModelessDialog里移动别一个showModelessDialog的位置。 主文件的部份js代码。   var s1=showModelessDialog(”控制.htm”,window,”dialogTop:1px;dialogLeft:1px”) //打开控制窗口   var s2=showModelessDialog(”about:blank”,window,”dialogTop:200px;dialogLeft:300px”)  //打开被控制窗口 控制.htm的部份代码。   <script>     //操作位置数据,因为窗口的位置数据是”xxxpx”方式的,所以需要这样的一个特殊操作函数。 function countNumber(A_strNumber,A_strWhatdo) {  A_strNumber=A_strNumber.replace(”px”,””)  A_strNumber-=0  switch(A_strWhatdo)  {  case “-”:A_strNumber-=10;break;  case “+”:A_strNumber+=10;break;  }  return A_strNumber + “px” }   </script>   <input type=”button” onclick=”window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,”-”)” value=”上移”>   <input type=”button” onclick=”window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,”-”)” value=”左移”>   <input type=”button” onclick=”window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,”+”)” value=”右移”>   <input type=”button” onclick=”window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,”+”)” value=”下移”> 以上关键部份是:     窗口命名方式:var s1=showModelessDialog(”控制.htm”,window,”dialogTop:1px;dialogLeft:1px”)     变量访问方式:window.dialogArguments.s2.dialogTop 这个例子只是现实showModelessDialog与showModelessDialog之间的位置操作功能,通过这个原理,在showModelessDialog之间相互控制各自的显示页面,传递变量和数据等。这要看各位的发挥了

龙生   19 Feb 2013
View Details

通过user-Agent获取浏览器和操作系统信息

 下面是我整理的一些userAgent大家先看看格式 //Firefox 1.0.X Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 //Firefox 1.X Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5 Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8) Gecko/20060109 Firefox/1.5 (pigfoot) Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2 Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20060115 Firefox/1.6a1 //Firefox 2.0 Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1 Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3 //苹果的Safari 2.0.X Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/419 (KHTML, like Gecko) Safari/419.3 Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/417.9 (KHTML, like Gecko) Safari/417.8 在Windows XP SP2 下, IE7 将发送其 User-Agent 头为: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) 在Windows 2003 Server 下, IE7 将发送其 User-Agent 头为: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2) 在Windows Vista 下, IE7 将发送其 User-Agent 头为: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0) 我的机器的 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) Maxthon 傲游 1.x 系列的 UserAgent 值是  “Maxthon”,傲游 2.0 的 UserAgent 值是 “Maxthon 2.0″。所以只需要通过程序在 User-Agent 字符串中查找是否出现 “Maxthon” 或者 “Maxthon 2.0″ Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; Maxthon 2.0) 其他的 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.2) Gecko/20021120 Netscape/7.01 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2) 一般来讲只需要判断浏览器的内核就可以了 像遨游1.X版本腾讯的TT浏览器都是IE6的核心 如果没有特殊需要可以不加区分 下面的例子只按浏览器核心判断是那种浏览器 //获取userAgent var sUserAgent = window.navigator.userAgent; //获取红色字体的部分Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) var fAppVersion = parseFloat(window.navigator.appVersion); //比较版本大小后面的程序会用到,如果不熟悉split和push方法请参照《JavaScript学习笔记1:Array类》 function compareVersions(sVersion1, sVersion2) { var aVersion1 = sVersion1.split(“.”); var aVersion2 = sVersion2.split(“.”); if (aVersion1.length > aVersion2.length) { for (var i = 0; i < aVersion1.length – aVersion2.length; i++) { aVersion2.push(“0″); } } else if (aVersion1.length < aVersion2.length) { for (var i = 0; i < aVersion2.length – aVersion1.length; i++) { aVersion1.push(“0″); } } for (var i = 0; i < aVersion1.length; i++) { if (aVersion1[i] < aVersion2[i]) { return -1; } else if (aVersion1[i] > aVersion2[i]) { return 1; } } return 0; } //判断userAgent字符串里面是否有Opera字段,有则设isOpera为true,下面还会用到 var isOpera = sUserAgent.indexOf(“Opera”) > -1; var isMinOpera4 = isMinOpera5 = isMinOpera6 = isMinOpera7 = isMinOpera7_5 = false; if (isOpera) { var fOperaVersion; //Opear可以伪装成其他的浏览器,这里判断的是没有伪装的 if (window.navigator.appName == “Opera”) { fOperaVersion = fAppVersion; } //这里判断的是伪装后的(某些伪装情况下在userAgent中不会出现Opera字样对这种情况我们无能为力,不过毕竟是极少 //数),关于Opera的伪装请自己查看相关资料 else { //这个有点难度了关于正则表达式的 //我们要匹配的部分(红色字体) User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; -?) Opera 7.60 var reOperaVersion = new RegExp(“Opera (\\d+\\.\\d+)”); reOperaVersion.test(sUserAgent); //RegExp["$1"]取出第一次匹配的结果,转换成浮点型 //Opera 7.60 这个是匹配结果,转换成浮点后只剩下数字部分7.60,刚好是我们想要的结果 fOperaVersion = parseFloat(RegExp["$1"]); } //目前最新版本为9.20,请自行添加 isMinOpera4 = fOperaVersion >= 4; isMinOpera5 = fOperaVersion >= 5; isMinOpera6 = fOperaVersion >= 6; isMinOpera7 = fOperaVersion >= 7; isMinOpera7_5 = fOperaVersion >= 7.5; } var isKHTML = sUserAgent.indexOf(“KHTML”) > -1 || sUserAgent.indexOf(“Konqueror”) > -1 || sUserAgent.indexOf(“AppleWebKit”) > -1; var isMinSafari1 = isMinSafari1_2 = false; var isMinKonq2_2 = isMinKonq3 = isMinKonq3_1 = isMinKonq3_2 = false; if (isKHTML) { var isSafari = sUserAgent.indexOf(“AppleWebkit”) > -1; var isKonq = sUserAgent.indexOf(“Konqueror”) > -1; //MacOS X的默认浏览器,基于KHTML,参考前面给出的userAgent if (isSafari) { var reAppleWebKit = new RegExp(“AppleWebKit\\/(\\d+(?:\\.\\s*)?)”); reAppleWebKit.test(sUserAgent); var fApplieWebKitVersion = parseFloat(RegExp["$1"]); isMinSafari1 = fApplieWebKitVersion >= 85; isMinSafari1_2 = fApplieWebKitVersion >= 124; } //判断是否是Konqueror浏览器,Unix下的浏览器,基于KHTML else if(isKonq) { var reKong = new RegExp(“Konqueror\\/(\\s+(?:\\.\\d+(?:\\.\\d)?)?)”); reKong.test(sUserAgent); isMinKonq2_2 = compareVersions(RegExp["$1"], “2.2″) >= 0; isMinKonq3 = compareVersions(RegExp["$1"], “3.0″) >= 0; isMinKonq3_1 = compareVersions(RegExp["$1"], “3.1″) >= 0; isMinKonq3_2 = compareVersions(RegExp["$1"], “3.2″) >= 0; } } //IE var isIE = sUserAgent.indexOf(“compatible”) > -1 && sUserAgent.indexOf(“MSIE”) > -1 && !isOpera; var isMinIE4 = isMinIE5 = isMinIE5_5 = isMinIe6 = false; if (isIE) { var reIE = new RegExp(“MSIE (\\d+\\.\\d+)”); reIE.test(sUserAgent); var fIEVersion = parseFloat(RegExp["$1"]); isMinIE4 = fIEVersion >= 4; isMinIE5 = fIEVersion >= 5; isMinIE5_5 = fIEVersion >= 5.5; isMinIE6 = fIEVersion >= 6.0; } //Mozilla,火狐数此类 var isMoz = sUserAgent.indexOf(“Gecko”) > -1 && !isKHTML; var isMinMoz1 = sMinMoz1_4 = isMinMoz1_5 = false; if (isMoz) { //最新的版本号是4个标志位的了,这里应该把正则表达式改成”rv:(\\d+\\.\\d+(?:\\.\\d+(?:\\.\\d+)?)?)” var reMoz = new RegExp(“rv:(\\d+\\.\\d+(?:\\.\\d+)?)); reMoz.test(sUserAgent); //调用前面比较版本的方法 isMinMoz1 = compareVersions(RegExp["$1"], “1.0″) >= 0; isMinMoz1_4 = compareVersions(RegExp["$1"], “1.4″) >= 0; isMinMoz1_5 = compareVersions(RegExp["$1"], “1.5″) >= 0; } //Netscape var isNS4 = !isIE && !isOpera && !isMoz && !isKHTML && (sUserAgent.indexOf(“Mozilla”) == 0) && (navigator.appName == “Netscape”) && (fAppVersion >= 4.0 && fAppVersion < 5.0); var isMinNS4 = isMinNS4_5 = isMinNS4_7 = isMinNS4_8 = false; if (isNS4) { isMinNS4 = true; isMinNs4_5 = fAppVersion >= 4.5; isMinNs4_7 = fAppVersion >= 4.7; isMinNs4_8 = fAppVersion >= 4.8; } var isWin = (window.navigator.platform == “Win32″) || (window.navigator.platform == “Windows”); var isMac = (window.navigator.platform == “Mac68K”) || (window.navigator.platform == “MacPPC”) || (window.navigator.platform == “Macintosh”); var isUnix = (window.navigator.platform == “X11″) && isWin && isMac; var isWin95 = isWin98 = isWinNT4 = isWin2K = isWinME = isWinXP = false; var isMac68K = isMacPPC = false; var isSunOS = isMinSunOS4 = isMinSunOS5 = isMinSunOS5_5 = false; if (isWin) { //Win2003为Windows NT 5.2 //那个vista是Windows NT 6.0 isWin95 = sUserAgent.indexOf(“Win95″) >= -1 || sUserAgent.indexOf(“Windows 95″) >= -1; isWin98 = sUserAgent.indexOf(“Win98″) >= -1 || sUserAgent.indexOf(“Windows 98″) >= -1; isWinME = sUserAgent.indexOf(“Win 9x 4.90″) >= -1 || sUserAgent.indexOf(“Windows ME”) >= -1; isWin2K = sUserAgent.indexOf(“Windows NT 5.0″) >= -1 || sUserAgent.indexOf(“Windows 2000″) >= -1; isWinXP = sUserAgent.indexOf(“Windows NT 5.1″) >= -1 || sUserAgent.indexOf(“Windows XP”) >= -1; isWinNT4 = sUserAgent.indexOf(“WinNT”) >= -1 || sUserAgent.indexOf(“WindowsNT”) >= -1 || sUserAgent.indexOf(“WinNT4.0″) >= -1 || sUserAgent.indexOf(“Windows NT 4.0″) && (!isWinME && !isWin2K && !isWinXP); } if (isMac) { isMac68K = sUserAgent.indexOf(“Max_68000″) > -1 || sUserAgent.indexOf(“68K”) > -1; isMacPPC = sUserAgent.indexOf(“Mac_PowerPC”) > -1 || sUserAgent.indexOf(“PPC”) > -1; } //Unix的系统太多了 这里只对SunOS做了判断 if (isUnix) { isSunOS = sUserAgent.indexOf(“SunOS”) > -1; if (isSunOS) { var reSunOS = new RegExp(“SunOS (\\d+\\.\\d+(?:\\.\\d+)?)”); reSunOS.test(sUserAgent); isMinSunOS4 = compareVersions(RegExp["$1"], “4.0″) >= 0; isMinSunOS5 = compareVersions(RegExp["$1"], “5.0″) >= 0; isMinSunOS5_5 = compareVersions(RegExp["$1"], “5.5″) >= 0; } } 注意:上面的对操作系统和浏览器判断的先后顺序是不能改变的,类似于排除法 现在好多的Ajax框架里都有这个东东可以拿来直接用, 写的有点匆忙,后面很多地方和前面用的方法相同就没有复述 如果你和我一样是新手欢迎和我交流,我的邮箱是zyyn2000【at】21cn.com,最近正在学ASP.NET Ajax相关的技术,也请高手指点 如果你想看自己的userAgent在浏览器上敲这个就可以了^_^ javascript:document.write(navigator.userAgent) 这个东西我还写了一个C#版的,方便一次性识别大量的userAgent^_^ 我的作文很少及格写的不好大家见笑了,欢迎批评指正。 国际惯例:如需转载请注明出处,谢谢. from url:http://www.cnblogs.com/Ajax-cn/archive/2007/04/24/725334.html

龙生   19 Feb 2013
View Details

js中substring和substr的用法

  substring 方法用于提取字符串中介于两个指定下标之间的字符 substring(start,end) 开始和结束的位置,从零开始的索引 参数     描述start     必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。stop     可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。 返回值 一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。 说明 substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。如果 start 或 end 为负数,那么它将被替换为 0。 2.substr 方法 定义和用法 substr 方法用于返回一个从指定位置开始的指定长度的子字符串。 语法 stringObject.substr(start [, length ]) 参数    描述start   必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。length 可选。在返回的子字符串中应包括的字符个数。 说明 如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到stringObject的最后。 举例:var str = “0123456789″; alert(str.substring(0));————”0123456789″alert(str.substring(5));————”56789″alert(str.substring(10));———–”"alert(str.substring(12));———–”"alert(str.substring(-5));———–”0123456789″alert(str.substring(-10));———-”0123456789″alert(str.substring(-12));———-”0123456789″alert(str.substring(0,5));———-”01234″alert(str.substring(0,10));———”0123456789″alert(str.substring(0,12));———”0123456789″alert(str.substring(2,0));———-”01″alert(str.substring(2,2));———-”"alert(str.substring(2,5));———-”234″alert(str.substring(2,12));———”23456789″alert(str.substring(2,-2));———”01″alert(str.substring(-1,5));———”01234″alert(str.substring(-1,-5));——–”" alert(str.substr(0));—————”0123456789″alert(str.substr(5));—————”56789″alert(str.substr(10));————–”"alert(str.substr(12));————–”"alert(str.substr(-5));————–”0123456789″alert(str.substr(-10));————-”0123456789″alert(str.substr(-12));————-”0123456789″alert(str.substr(0,5));————-”01234″alert(str.substr(0,10));————”0123456789″alert(str.substr(0,12));————”0123456789″alert(str.substr(2,0));————-”"alert(str.substr(2,2));————-”23″alert(str.substr(2,5));————-”23456″alert(str.substr(2,12));————”23456789″alert(str.substr(2,-2));————”"alert(str.substr(-1,5));————”01234″alert(str.substr(-1,-5));———–”" http://www.cnblogs.com/chinafine/archive/2009/02/26/1398771.html

龙生   19 Feb 2013
View Details

jquery $(document).ready() 与window.onload的区别

 1.执行时间window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。2.编写个数不同window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个$(document).ready()可以同时编写多个,并且都可以得到执行3.简化写法window.onload没有简化写法$(document).ready(function(){})可以简写成$(function(){});

龙生   19 Feb 2013
View Details

15 个非常有用的 jQuery 表单插件

  有很多 jQuery 的表单插件。这里收集了其中15个是最有用的插件。 ALAJAX (Ajaxify your HTML form) 该插件可轻松将你的表单变成 Ajax 方式处理,阻止了提交动作,然后通过 Ajax 方式提交。 jQuery File Upload (AJAX Upload with progress and more) Niceforms 这是一个让表单变得好看的 jQuery 插件 Fancy AJAX Contact Form meioMask (Input field mask plugin) 编辑框的输入模式限制插件 Elastic (expanding textarea) jQuery Elastic 是一个用来根据Textarea文本编辑框输入的数据自动改变输入框大小的jQuery插件。 Live Form Validation Custom Select Box (options with images) 为下拉列表增加图标显示 Pretty Checkbox 美化复选框 jQuery UI Datepicker Complexify (password strength) jQuery Form Field Validation A cool form validation with tooltips. Ketchup (form validation plugin) 带工具提示的表单验证 Valid8 Simple and cool validation plugin. jQuery qTip (tooltip plugin)  

龙生   19 Feb 2013
View Details

分享 7 款令人难忘的 jQuery 实用教程

  这次分享的一些网页特效都是完全基于jQuery的,而且相信大部分插件都可以帮助WEB前端开发者简化很多开发工作,比如菜单、图片播放等实用功能。这里我向大家展示了这些插件的在线演示,同时也提供源代码的下载,方便各位同学研究。 1、jQuery环形动画菜单 这是一款少有的jQuery菜单,很显然,环形动画是它最大的亮点,很有创意哦。 在线演示 / 源码下载 2、jQuery动画下拉菜单 这里有4个不同主题的下拉菜单,十分清爽漂亮。 在线演示 / 源码下载 3、带小图标的jQuery多级菜单导航 这是一款带有功能图标的多级菜单,用jQuery实现。 在线演示 / 源码下载 4、jQuery带缩略图的图片播放插件 这是一款基于jQuery的图片播放插件,带缩略图,而且用起来也方便。 在线演示 / 源码下载 5、古典卡带播放器 这是jQuery结合HTML5实现的古典卡带播放器,很经典。 在线演示 / 源码下载 6、jQuery实现的Lava-Lamp样式的动画菜单 基于jQuery的滑动动画菜单,仿Flash。 在线演示 / 源码下载 7、minimal tab 这是一款基于jQuery的tab菜单插件,google play风格的 在线演示 / 源码下载 以上就是7个令人难忘的jQuery实用教程,希望大家喜欢,收藏起来吧。 转自:http://www.oschina.net/news/35429/7-jquery-tutorials

龙生   19 Feb 2013
View Details
1 52 53 54 60