随笔分类 -  JavaScript

摘要:简述 在《JavaScript高级程序设计(第三版)》中,提到WebWorker的importScripts方法是异步执行的,然而在另一本书《Javascript权威指南》中,却说importScripts是一个同步方法,两者矛盾,故私底下测试一番,发现该方法确实是同步执行,待所有js问价解析执行... 阅读全文
posted @ 2015-01-07 10:24 royalrover 阅读(13302) 评论(0) 推荐(1) 编辑
摘要:简述html5新添加的canvas API可以让我们对画布进行开发应用,典型的是可以使用canvas截图或者手工绘制“迷你图”(即嵌入在文本中的高清小图片)。实现截图的方法很简单,就是创建一个canvas并用drawImage来获取该时刻视频帧,并使用canvas的toDataURL转换成data ... 阅读全文
posted @ 2015-01-06 14:29 royalrover 阅读(1049) 评论(0) 推荐(0) 编辑
摘要:概述 对于uri的编解码,在js中有3对函数,分别是escape/unescape,encodeURI/decodeURI,encodeURIComponent/decodeURIComponent。 它们的适用范围不同,而且遵循的编码规范也不同。 对于上述函数而言,所有的ASCII的字符编码相同, 阅读全文
posted @ 2014-12-22 15:22 royalrover 阅读(11853) 评论(0) 推荐(3) 编辑
摘要:js内置对象是ECMAScript规范中要求实现的一些函数和对象,具体包括Object,Function,Number,Boolean,Array,String,RegExp,Error,Date,Global,Math。其中,Math比较特殊,是一个静态类,而不是构造函数。这些对象(函数)在js引... 阅读全文
posted @ 2014-12-18 19:42 royalrover 阅读(595) 评论(0) 推荐(0) 编辑
摘要:前几天做一个用iframe显示曲线图的demo,发现对iframe的contentDocument绑定onclick事件都无效,而在页面中对iframe.contentDocument的onclick属性为undefined;而当iframe去掉src属性后,在对其绑定onclick事件,该事件生效... 阅读全文
posted @ 2014-12-14 21:50 royalrover 阅读(520) 评论(0) 推荐(0) 编辑
摘要:目前大多数搜索框都已实现自动补全功能,自己也私底下实现了一个简易版本,在此总结过程中的一些要点: 1,侦听文本框的value值改变,注意在Ie8及其之前版本的onpropertychange和Ie9的oninput事件与 W3C下的oninput事件的异同; 2,ajax请求数据; 3,自动... 阅读全文
posted @ 2014-12-10 18:25 royalrover 阅读(918) 评论(1) 推荐(0) 编辑
摘要:new操作符易用,但是往往容易忽略对其的理解。var foo= new Foo();这个简单的语句,涉及到了一系列的步骤: 1),给对象开辟内存,即 var foo= {}; 2),修改新对象的隐式原型对象,即 foo.__proto__ = Foo.prototype; 3),在foo上下文... 阅读全文
posted @ 2014-12-09 21:07 royalrover 阅读(155) 评论(0) 推荐(0) 编辑
摘要:本文转自这里 规范中 instanceof 运算符定义 11.8.6 The instanceof operator The production RelationalExpression: RelationalExpression instanceof ShiftExpression ... 阅读全文
posted @ 2014-12-09 20:19 royalrover 阅读(348) 评论(0) 推荐(0) 编辑
摘要:拖拽的元素必须绝对定位。在实际操作中,犯了一个简单的错误: 对于iframe元素的事件绑定,需要在src完全加载后进行绑定。 iframe.onload = function(){ iframe.contentDocument.onclick = function(){} ... }另... 阅读全文
posted @ 2014-12-09 17:34 royalrover 阅读(285) 评论(0) 推荐(0) 编辑
摘要:IE系列直到IE9才支持DOMContentLoaded事件,对于IE8及其之前版本,如果html内没有框架,则可以采用document.documentELement.doScroll来判断是否构建好DOM树;如果html内有框架,则利用document的onreadystatechange事件判... 阅读全文
posted @ 2014-12-08 23:15 royalrover 阅读(413) 评论(0) 推荐(1) 编辑
摘要:重新温习了下这段内容,发现各个浏览器的兼容性真的是搞大了头,处理起来很是麻烦。现在现总结下并行加载多个js的方法: 1,对于动态createElement('script')的方式,对所有浏览器都是异步并行加载的。这里所说的并行不仅仅指的是 js并行加载,也包括js和其他资源比如图片,ifr... 阅读全文
posted @ 2014-12-05 17:33 royalrover 阅读(2547) 评论(0) 推荐(1) 编辑
摘要:平淡的描述 在js中,能使用特征监测就尽量不要使用浏览器嗅探。嗅探浏览器目的是判断可否使用这个对象或者API,但是抛开浏览器的各个版本的userAgent不说,还有些浏览器打补丁的情况,造成判断异常复杂,兜了个大的圈子,而特征检测则是直接了当,不存在维护困难的问题。 其次,当不确定某个版本的浏览... 阅读全文
posted @ 2014-11-24 23:48 royalrover 阅读(2373) 评论(0) 推荐(1) 编辑
摘要:对于早期的w3c浏览器,并没有实现ie的私有方法insertAdjacentHTML(目前已是HTML5标准),可以用appendChild模拟该方法的实现: if(typeof HTMLElement !=='undefined' && !HTMLElement.prototype.insert... 阅读全文
posted @ 2014-11-21 17:30 royalrover 阅读(653) 评论(0) 推荐(0) 编辑
摘要:在IE的全系列中都实现了mouseenter和mouseleave事件,但是在早期的w3c浏览器中却没有实现这两个事件。有时候,我们需要使用mouseenter事件来防止子元素的冒泡,这就涉及到事件兼容性的问题了。先比较mouseenter和mouseover的异同点,当从元素外围进入元素内部时同时... 阅读全文
posted @ 2014-11-21 11:20 royalrover 阅读(3398) 评论(0) 推荐(0) 编辑
摘要:之前很简单的认为对input的value监测就用2个事件可以搞定兼容性,知道我看了司徒正美的这篇博客,还是感慨自己不够深入,接触的太少。 对于IE全系列,可以采用onpropertychange属性监测 对于 gteIE9 和W3c浏览器,则通过input事件进行监测。 但是IE9的兼容性可能... 阅读全文
posted @ 2014-11-20 15:23 royalrover 阅读(349) 评论(0) 推荐(0) 编辑
摘要:对于“==”,我们肯定不陌生,但是背后的判定机制我们可能不是很熟悉,我现在先举一些例子,最后再总结一下大概的方法: null == undefined // true 1 == true // NaN == NaN //false '123' == 123 //true Number... 阅读全文
posted @ 2014-11-20 09:45 royalrover 阅读(259) 评论(0) 推荐(0) 编辑
摘要:重新复习了富文本编辑器的基本实现,现总结下要点: 1,iframe的创建,之所以使用iframe框架,是为了防止编辑的内容影响当前文档。 2,隐藏的textarea保存iframe的源码 3,ie下的兼容性,为了保存ie的选中范围,需要借助于textRange.getBookmark(),以及... 阅读全文
posted @ 2014-11-19 23:37 royalrover 阅读(606) 评论(0) 推荐(0) 编辑
摘要:typeof存在一些兼容性的问题,在IE6,7,8中的DOM和BOM元素及其对象上的方法的判定会出现误差,在safari上对NodeList实例的判定,对ExpReg实例的判断(早期的chrome,safari会对ExpReg实例认定为‘function’)。分析: 之所以会在IE6,7,8对DO... 阅读全文
posted @ 2014-11-19 12:37 royalrover 阅读(2174) 评论(0) 推荐(1) 编辑
摘要:简介attribute和property都有属性之意,但对于attribute和property的区分其实并不难。从对象来说,attribute是html文档上标签属性,而property则是对应dom元素的自身属性。从操作方法上来看,attribute可以通过dom core规范的接口 getAt... 阅读全文
posted @ 2014-11-19 09:16 royalrover 阅读(9202) 评论(3) 推荐(4) 编辑
摘要:jQuery早期的事件系统,主要借鉴自Dean-Edward的事件模型。虽说早期的该事件模型也有些许bug,诸如: 1,绑定的事件及其处理程序等数据并未存储到缓存中,而是直接存储在dom元素上,这样不仅污染了dom元素,而且还有可能造成隐患,比如在早期的ie下 拷贝元素,顺带着连这些数据都拷贝了... 阅读全文
posted @ 2014-11-12 15:13 royalrover 阅读(280) 评论(0) 推荐(0) 编辑