摘要: 文章比较长,真正需要的就耐心看吧。比如我们要加载a.js,一般会这么写:var head = document.getElementsByTagName('head')[0];var script = document.createElement('script');script.type = 'text/javascript';script.src = 'a.js';head.appendChild(script); 说一个知识点,后面会用到:Opera这货是个彻彻底底的两面派,比如它支持 IE 的attachEvent,也支持 阅读全文
posted @ 2011-12-25 01:18 越己 阅读(8171) 评论(3) 推荐(0) 编辑
摘要: 废话不说,直接看代码,最后会给出一个示例:/** * TopN 排行榜组件 * * @param {Array} data 排行数据 * @param {Number} N 即TopN的N * @param {Object} config 配置对象,格式为: * { * headers: [], // 每一项的header信息,如"北京"的header为"城市", * // 每一项... 阅读全文
posted @ 2011-12-19 18:50 越己 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 介绍具体命令之前,先普及一些批处理知识:1.批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令2.批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来 循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括 内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。3.每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一 阅读全文
posted @ 2011-12-10 01:44 越己 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 利用时间来排序还是第一次看到:var ints = [1, 3, 2, 4, 8, 6, 7, 5];for(var i = 0, len = ints.length; i < len; i++){ setTimeout(function(num){ console.log(num); }, ints[i], ints[i]);}这里setTimeout居然可以传入第三个参数,经测试,表示回调函数的第一个参数,所以如果传入第四个参数,就表示回调函数的第二个参数啦 阅读全文
posted @ 2011-12-04 17:15 越己 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 进入主题之前先介绍一种创建函数的新方法:new Function()我们来创建一个函数,名字为foofunction foo(a, b){ return a + b;}这种方式是我们普遍使用的,但同样的,我们还可以使用JS语言内置的Function对象来创建这个函数var foo = new Function('a', 'b', 'return a + b;');其实这两种写法在JS引擎看来是同一种,因为第一种会被转换为第二种,只不过第一种可读性更好而已。例子说完了,来看下API:/** * 函数名称为 funName * @param {Str 阅读全文
posted @ 2011-12-04 15:30 越己 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 内存泄漏常见的原因有三种:1. 闭包2. 未解除事件绑定3. 循环引用DOM元素除此之外,还有一种泄漏原因少有人知,它和innerHTML有关,不过很容易解决。出现这种内存泄漏需要有三个条件: 1. 内存中存在一个未加入DOM树的元素 2. 给这个元素设置innerHTML,注意,必须是能创建元素并且绑定了DOM 0级事件 3. 必须在这个元素加入DOM树前设置它的innerHTML举个例子:// 创建一个仅存在于内存中的元素var el = document.createElement('div');// 设置innerHTMLel.innerHTML = '< 阅读全文
posted @ 2011-11-28 23:02 越己 阅读(586) 评论(1) 推荐(1) 编辑
摘要: 最近在做一个播放器,从 UI 到编码全得自己搞定, 做 UI 的时候发现带圆角的图标很不好画,网上这方面的教程也很少,经朋友指点,发文分享心得。软件: Photoshop工具: 铅笔,大小为1像素先来画一个"单曲循环" 图标画法:1. 先画上半部分,画好后只需要复制,变换方向2. 为了实现箭头的尖角,中间的线条像素必须是奇数,这里是3个像素3. 把尾部 1像素宽 的线条每次下移一个像素的距离正常大小效果:接着画 "随机播放" 按钮,还是用刚才的方法:是不是觉得两头粗,中间细 ? 反正我觉得看的很别扭,那就换种方法:虽然看着还是有些问题,但以我的能力只能画 阅读全文
posted @ 2011-11-26 17:23 越己 阅读(1670) 评论(1) 推荐(0) 编辑
摘要: 正则的 g 和 i 是较为常用的匹配模式,而 m 却较为少用,至少我到现在都没用过。先来看下w3school的说法:“它声明了给定的正则表达式是否以多行模式执行模式匹配。 在这种模式中,如果要检索的字符串中含有换行符,^ 和 $ 锚除了匹配字符串的开头和结尾外还匹配每行的开头和结尾。”举个例子:/javascript$/ 可以匹配 "javascript",而 /javascript$/m 则可以匹配 "javascript\n" 或 "javascript\r" 之类的。 阅读全文
posted @ 2011-11-23 10:25 越己 阅读(289) 评论(0) 推荐(0) 编辑
摘要: web开发常用的表单登录,一般就是提交form数据,而在AS中,换了一种形式,但实质都是提交key-value:public function submit(){ var variables:URLVariables = new URLVariables; variables.username = form.username.text; variables.password = form.password.text; sendRequest(' url ', variables);}public function sendRequest(url: String, par... 阅读全文
posted @ 2011-11-12 17:09 越己 阅读(536) 评论(2) 推荐(0) 编辑
摘要: 这里的Data指的是文件,比如.txt,.xml等。package{ import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.system.System; /** * ... * @author zhujl */ public class LoadData extends Sprite { public var loa... 阅读全文
posted @ 2011-11-12 16:45 越己 阅读(177) 评论(0) 推荐(0) 编辑