随笔分类 -  javascript

摘要:项目中做打印预览时,在IE10中出现兼容性问题,需要针对IE10做特殊处理。在网上搜了一下,有三种方法可以实现一、特性检测:@cc_on 文章中说该方法可行,但我在IE8中试了也同样返回true二、@media -ms-high-contrast 方法@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { /* IE10-specific styles go here */ }//由于是在js中使用,所以改动一下function isIE10(){ var flag = false;... 阅读全文
posted @ 2013-09-02 02:21 上善若水. 阅读(2257) 评论(0) 推荐(1)
摘要:今天使用同事扩展jquery validate函数mobile验证时,require值传入false发现也会验证,去掉mobile后就没这个问题,把mobile替换成自带的digits也没有这个问题,所以问题肯定出在扩展的mobile函数中。查看digits的实现,发现它上面多了一句this.optional(element),虽然不清楚什么意思,试着也加上这句,结果效果真的来了。上网查了一下this.optional(element)的作用。http://kia126.iteye.com/blog/1545893optional(element):用于表单控件的值不为空时才触发验证如果值为空 阅读全文
posted @ 2013-08-23 11:00 上善若水. 阅读(2759) 评论(0) 推荐(1)
摘要:这是一个很基础的问题,但是我们往往经常做错。当一个数组需要清空的时候,很多人使用下面的方法:a = [];我们知道javascript变量存储方式分为引用类型和直接量。数组属于对象,即引用类型,引用的是变量指针地址,之所以这样设计也是为了节省内存。再说到上面的请空数组的方式,如果采用直接赋值一个新数组的方式,那么之前引用的数组可能不会被释放(有其他的引用),例如下面的代码:var a = [2,3];var b = a;a = [];console.log(b);这时候a和b就不是同一个数组了,清空了a而b还是指到之前的引用地址,除非你是故意的,否则这将会有隐患。所以最佳的请空数组方式是:将l 阅读全文
posted @ 2013-03-05 09:44 上善若水. 阅读(336) 评论(0) 推荐(0)
摘要:实现原理:其实就是将事件绑定到父节点,由于事件冒泡,所有事件最终会冒泡到document节点当有事件触发时,则判断事件类型和触发事件的元素是否一致,如果相同则执行函数<!doctype html><html> <head> <title>jquery live()函数原理及实现</title> <style type="text/css"> table{ border-collapse:collapse; border-spacing:0; } ... 阅读全文
posted @ 2012-12-28 18:07 上善若水. 阅读(1294) 评论(0) 推荐(0)
摘要:之前看很多人这样写for循环,感到很困惑,直接i<divs.length不就行了,为什么要多此一举加一个len呢?for(var i=0, len=divs.length; i<len; i++){ ...}昨天晚上再看javascript高级程序设计(第二版)发现有说这个问题的,说的是迭代nodeList时会出现无限循环的问题例如:var divs = document.getElementsByTagName("div");for(var i=0; i<divs.length; i++){ var div = document.createElemen 阅读全文
posted @ 2012-12-06 10:34 上善若水. 阅读(246) 评论(0) 推荐(0)
摘要:工作中碰到需要对二维数组里面的数组的第一维数字大小进行排序,直接使用sort();得到的结果是:[[1009,1], [356,2], [798,3]],而这显然是不正确的,查看文档得知sort()是可带参数的,arrayObject.sort(sortby) //可选。规定排序顺序。必须是函数。若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。若 a 等于 b,则返回 0。若 a 大于 b,则返回一个大于 0 的值。所以将sort()修改可以实现:<html> <head> <title>二维数组排序</titl 阅读全文
posted @ 2012-10-26 10:55 上善若水. 阅读(381) 评论(0) 推荐(0)
摘要:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>test</title> <script type="text/javascript"> window.onload =function() { document.getElementById("test&qu 阅读全文
posted @ 2012-06-29 17:04 上善若水. 阅读(2785) 评论(0) 推荐(0)
摘要:最近使用表单时发现一个问题,就是表单提交后,再使用reset按钮重置输入框,这时reset不起作用。网上查阅资料获知,其实reset的功能是重置表单为默认值,并不一定是清空表单。由于form提交后,输入框的默认值可能不为空(保存了上次查询的值),例如值为aa,不管怎么reset都会变为aa,就算输入bb后,再reset也会变成aa,而不是为空值。可见,是自己对reset按钮功能的误解,才觉得reset不起作用,同样可能很多人都会有这样的误解。解决方法:使用js功能重置表单值$(":reset").click(function(){ var resetArr = $(this 阅读全文
posted @ 2012-03-13 16:34 上善若水. 阅读(1725) 评论(0) 推荐(0)
摘要:最近项目中用到的图片上传前预览功能,兼容IE6-9,FF<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <body> <input type=file name="doc" id="doc" 阅读全文
posted @ 2012-03-06 12:23 上善若水. 阅读(17821) 评论(13) 推荐(1)
摘要://Json字符串转成Json对象如果用jQuery:$.parseJSON('{"name":"John"}');如果不用jQuery,可以引用json2.jsJSON.parse('{"name":"John"}');//Json转成字符串function Obj2str(o) { if (o == undefined) { return ""; } var r = []; if (typeof o == "string") return 阅读全文
posted @ 2012-03-01 15:15 上善若水. 阅读(1219) 评论(0) 推荐(0)
摘要:写了个javascript颜色选择器功能,功能还不够完整,代码不够健壮,颜色值排序不合理。先发布,后续改进。欢迎各位高手指导,谢谢!~<!doctype html><html> <head> <title>javascript颜色选择器</title> <style type="text/css"> #color_container{ width:290px; /*width:600px;*/ border:1px solid #9c9c9c; ... 阅读全文
posted @ 2011-12-13 17:56 上善若水. 阅读(1950) 评论(0) 推荐(0)
摘要:要想写出跨浏览器的javascript,就必须懂得嗅探技术。这是浏览器大战遗留下的大地雷,事已如此,只好认命,乖乖写分支结构吧,函数就是这样不知不觉中变长的。先看单一浏览器的判断,我们没有必须去找navigator.userAgent的麻烦,我在国外的博客网站收集了如下hack,短小精悍:ie = !+"/v1" ; 02.ie =''/v''==''v'' ;03.ie = 0//@cc_on+1;04.ie = !!top.execScript;05.ie = /*@cc_on!@*/!1;06.ie8 = 阅读全文
posted @ 2011-04-02 21:24 上善若水. 阅读(218) 评论(0) 推荐(0)
摘要:Referrer的重要性HTTP请求中有一个referer的报文头,用来指明当前流量的来源参考页。例如在 www.sina.com.cn/sports/上点击一个链接到达cctv.com首页,那么就referrer就是www.sina.com.cn /sports/了。在Javascript中,我们可以通过document.referrer来获取同样的信息。通过这个信息,我们就可以知道访客是从什么渠道来到当前页面的。这对于Web Analytics来说,是非常重要的,这可以告诉我们不同渠道带来的流量的分布情况,还有用户搜索的关键词等,都是通过分析这个referrer信息来获取的。但是,出于各种 阅读全文
posted @ 2010-11-19 11:53 上善若水. 阅读(779) 评论(0) 推荐(0)
摘要:我写JavaScript代码已经很久了,都记不起是什么年代开始的了。对于JavaScript这种语言近几年所取得的成就,我感到非常的兴奋;我很幸运也是这些成就的获益者。我写了不少的文章,章节,还有一本专门讨论它的书,然而,我现在依然能发现一些关于这种语言的新知识。下面的描述的就是过去让我不由得发出“啊!”的感叹的编程技巧,这些技巧你应该现在就试试,而不是等着未来的某个时候偶然的发现它们。简洁写法JavaScript里我最喜欢的一种东西就是生成对象和数组的简写方法。在过去,如果你想创建一个对象,你需要这样:1var car = new Object();2car.colour = 're 阅读全文
posted @ 2010-08-13 18:45 上善若水. 阅读(113) 评论(0) 推荐(0)
摘要:本文节选自阮一峰的网络日志http://www.ruanyifeng.com/blog/,原文标题为《12种不宜使用的Javascript语法》。原文是阮一峰对《Javascript语言精粹》一书的读后感。该书的作者是Douglas Crockford,他是目前世界上最精通Javascript的人之一,也是Json格式的创造者。他认为Javascript有很多糟粕。因为1995年Brendan Eich设计这种语言的时候,只用了三个月,很多语言特性没有经过深思熟虑,就推向了市场。结果等到人们意识到这些问题的时候,已经有100万程序员在使用它了,不可能再大幅修改语言本身了。所以,Douglas 阅读全文
posted @ 2010-08-13 18:40 上善若水. 阅读(228) 评论(0) 推荐(0)
摘要:<html><head><title>javascript 列表框左右移动</title><style type="text/css">select{width:100px;height:100px;}</style><script type="text/javascript">function roveRight(){var lBox = document.getElementById("leftBox");var rBox = document.g 阅读全文
posted @ 2010-07-22 14:51 上善若水. 阅读(342) 评论(0) 推荐(0)
摘要:一个删除节点的JS,在IE中删除最后一个节点没有问题,但在firefox中每次点了删除后不会删除,再点一次才能删除。<html><head><title>删除元素 JavascriptRemoveChild</title><script type="text/javascript">function delNode(){var para = document.getElementById("delUl");var paraLen = para.getElementsByTagName(" 阅读全文
posted @ 2010-07-22 14:41 上善若水. 阅读(297) 评论(0) 推荐(0)
摘要:假设div里有这么些内容:<div id="content"><h1>1</h1><h1>2</h1><h1>3</h1><h1>4</h1><h1>5</h1><h1>6</h1></div>现在要通过JavaScript的功能,将它们清空。虽然可以通过一句代码直接实现:document.getElementById("content").innerHTML=""但是 阅读全文
posted @ 2010-07-22 13:17 上善若水. 阅读(1115) 评论(0) 推荐(0)
摘要:做一个项目,遇到了要动态调整 select 选项的情况,就baidu了一下,发现了一篇与本文同名的帖子.但是呢,那个帖子里的方法并不兼容.附原文:<select id="ddlResourceType" onchange="getvalue(this)"></select>动态删除select中的所有options: document.getElementById("ddlResourceType").options.length=0; 动态删除select中的某一项option: document.getEl 阅读全文
posted @ 2010-07-22 13:14 上善若水. 阅读(324) 评论(0) 推荐(0)