随笔分类 - JS
摘要:Microsoft.AlphaImageLoader是IE滤镜的一种,其主要作用就是对图片进行透明处理。虽然FireFox和IE7以上的IE浏览器已经支持透明的PNG图片,但是就IE5-IE6而言还是有一定的意义。~~~AlphaImageLoader滤镜一般用来解决IE6不支持png图片透明度的问题,但除此之外,还可以实现本地图片预览的需求//AlphaImageLoader实现预览 关键点: AlpahaImageLoader src=本地路径 加载的是客户端文件系统的本地路径 AlphaImageLoader加载的图片位于 容器背景和内容之间例子: $('#p_prev,#p_u
阅读全文
摘要:ie6 可以直接显示本本地路径的图片 如: ~~~网上都说ie7就不支持这种文件系统路径的url,但测试 xp ie8还是可以的ie8+ alphaImageLoader滤镜方式加载本地路径的图片chrome, firefox, 用dataUrl 或 createObjectURL方法实现例子: get file input full path 然后 我们来看看 window.URL.createObjectURL() 到底是什么window.URL.createObjectURL概述创建一个新的对象URL,该对象URL可以代表某一个指定的File对象或...
阅读全文
摘要:作用域链和原型链是JS中比较重要的2个概念,JS的是函数作用域,与C之类语言的块级作用域不同JS的作用域还是词法作用域,或者叫静态作用域,作用域链是在语法解析时就完成的,而不是在执行时创建。例子var scope = 'global';function fn1(){ console.log(scope); }function fn2(){ var scope = 'local'; fn1(); }fn1(); //globalfn2(); //global
阅读全文
摘要:事件背景: 某个站点分为静态产品介绍页面(或由于某原因需要静态化),和一个独立的在线应用程序。静态产品页面属于www.a.com下,而在线应用程序作为一个相对独立的系统存在于app.a.com上。 在www.a.com上需要显示在线应用程序(app.a.com)中用户的登录状态及简单的用户信息。由于
阅读全文
摘要:一、触摸事件ontouchstartontouchmoveontouchendontouchcancel目前移动端浏览器均支持这4个触摸事件,包括IE。由于触屏也支持MouseEvent,因此他们的顺序是需要注意的:touchstart → mouseover → mousemove → mousedown → mouseup → click1~~触屏也支持mouseEvent?/*** onTouchEvent*/var div = document.getElementById("div");//touchstart类似mousedowndiv.ontouchstart
阅读全文
摘要:test innerHTMLJS call say();
阅读全文
摘要:首先IE是可以通过window.close()来关闭浏览器窗口的,但是在firefox和Chrome下是无效的,原因在于:~~~ie可直接close关闭窗口 ( ie8测试 )Firefox下默认设置是无法通过脚本来关闭浏览器窗口的,为的是防止恶意脚本注入,所以调整的方式就是在url地址栏中输入ab...
阅读全文
摘要:前几日写了一篇文章,介绍了js阻塞页面加载的问题。当时是通过例子来验证的。今天,我介绍一下浏览器内核,从原理上介绍一下js阻塞页面加载的原因。浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:javascript引擎线程,GUI渲染线程,浏览器事件触发线程。1.javascript引擎是基于事件驱动单线程执行的,JS引擎一直等待着任务队列中任务的到来,然后加以处理,浏览器无论什么时候都只有一个JS线程在运行JS程序。2.GUI渲染线程负责渲染浏览器界面,当界面需要重绘(Repaint)或由于某种操作引发回流(reflow)时,该线程就会执行。但需要注意
阅读全文
摘要:正则表达式是一个描述字符模式的对象。 JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. ~~~正则用于RegExp对象与String对象之间,可以完成模式匹配 文本检索 文本替换 在JavaScript中,正则表达式是由一个
阅读全文
摘要:JavaScript正则表达式零宽断言 JavaScript正则表达式零宽断言 var str="abnsdfZL1234nvcncZL123456kjlvjkl"var reg=/ZL(\d{4}|\d{6})(?!\d)/igalert(str.match(reg)) 说白了,就是(?!\d)代
阅读全文
摘要:禁止页面滚动 有三种方法1,依靠css 将页面document.documentElement.style.overflow='hidden';document.body.style.overflow='hidden';//手机版设置这个。如果设置了如上,页面的滚动条将会消失,此时鼠标滚轮失效。但是 你用键盘的 上下左右键,你会发现,页面仍然可以滚动。 别着急 往下看2,在 1 的基础上 添加 js功能 var move=function(e){e.preventDefault && e.preventDefault();e.returnValu
阅读全文
摘要://------------- PS_DOM 功能函数 start----------------var PS_DOM ={ indexOf: function(arr, e){ for(var i= 0; i1 && menu_active<=len){ this.act...
阅读全文
摘要:module dom {[Supplemental, NoInterfaceObject]interface NodeSelector {Element querySelector(in DOMString selectors);NodeList querySelectorAll(in DOMString selectors);};Document implements NodeSelector;DocumentFragment implements NodeSelector;Element implements NodeSelector;};[html]从接口定义可以看到Document、D
阅读全文
摘要:以前如果要使iframe里面的脚本能访问parent的内容,但iframe和parent的二级域名相同,那一般都会在两者都写上document.domain="xxx.com" 以放宽访问权限。今天发现,如果iframe和parent在同一个三级域名下,比如都是aa.bb.com,那设了document.domain反而会造成访问拒绝。查了下MSDN,有如下解释:RemarksThe property initially returns the host name of the server from which the page is served. The proper
阅读全文
摘要:最近项目中用到一个应用,当访问同一个网站地址的时候,例如:www.xxx.com的时候,如果当前客户端是pc则跳转到专注于pc的部分,如果当前客户机是手机,则跳转到专注于手机的部分,秉承一贯的习惯,baidu or google,但发觉网上的解决办法都不尽如人意,很多都是通过js读取本地文件系统进行判断,但经过测试,不能成功,而且通过js读取本地文件系统会造成安全性问题,但作为开放的互联网,我们不可能为每一部电脑设置安全性,于是自己动手,丰衣足食,以下就是我的解决办法: 依然是用js,不过只需要用到 navigator.platform,这是鉴于读取这个属性并不会造成安全性问题,而且,普遍的.
阅读全文
摘要:我们阅读博客的时候经常会用到这样功能,当然有时候也会想把自己的网站上也加入类似的分享功能,各大厂商已经给出了相应的API,点击一个按钮即可弹出窗口进入分享,我们事先可以设置一些参数,一般常用的就是 网站的网址,图片还有一些内容描述。这里我写了三个方法,分别分享到 新浪微博,Q空间,以及腾讯微博 ~~~ 应该 encodeURIComponent()一下比较好以上的函数分别具有三个参数,内容,网址,以及 图片,也就是我们想要分享的内容
阅读全文
摘要:题目1if (!("a" in window)) { var a = 1;}alert(a); // undefined, ~~~所有全局变量都是window的属性,声明语句会被提升至作用域顶部代码含义:如果window不包含属性a,就声明一个变量a,然后赋值为1。你可能认为alert出来的结果是1,然后实际结果是“undefined”。要了解为什么,需要知道JavaScript里的3个概念。首先,所有的全局变量都是window的属性,语句 var a = 1;等价于window.a = 1; 你可以用如下方式来检测全局变量是否声明:"变量名称" in
阅读全文
摘要:~~在看到这篇文章之前如果让我来判断IE的版本,那么我基本上会用 navigator.userAgent去做字符串检索,现在觉得特性检测的确比较靠谱一点今天一个项目中需要判断IE版本号,又因为 jQuery 2.0 去除了对浏览器版本号的判断(它推荐特性检测),于是就看到一老外写的一段代码:var _IE = (function(){ // 因为前面有括号 funcition被认为是匿名函数对象 var v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
阅读全文
摘要:昨晚,朋友拿了一道题问我:a.onclick = function(){ setTimeout(function() { //do something ... },0);}; //~~~ 我只知道这样回调会在JS引擎空闲时被执行,由于是单线程的关系,会进入待执行队列,没想到有人能解释的那么详细,差距啊~JavaScript API 文档明确定义:setTimeout的第二个参数意义为隔多少毫秒后,回调方法就会被执行。那么可以推断出:这里设成0毫秒,就立即被执行了。—————— 既然立即执行,为什么这段代码的作者为什么要 舍近求远?难道作者写代码的时候喝醉了?显然不是...
阅读全文
摘要:如何优化你的脚本来减少reflow/repaint?1. 避免在document上直接进行频繁的DOM操作,如果确实需要可以采用off-document的方式进行,具体的方法包括但不完全包括以下几种: (1). 先将元素从document中删除,完成修改后再把元素放回原来的位置 (2). 将元素的d
阅读全文

浙公网安备 33010602011771号