代码如下: /** * * 禁止点击backspace 返回上一页 */ window.onload=function(){ document.getElementsByTagName("body")[0].onkeydown =function(){ //获取事件对象 var elem = event.relatedTarget || event.srcElement || event.target ||event.currentTarget; if(event.keyCode==8){//判断按键为backSpace键 //获取按键按下时光标做指向的el...
JavaScript 是一种弱类型(或称动态类型)语言,即变量的类型是不确定的。x = 5; // 5 x = x + A; // 5A 上面代码中,变量x起先是一个数值,后来是一个字符串,类型完全由当前的值决定,这就叫弱类型。 弱类型的好处是十分灵活,可以写出非常简洁的代码。但是,对于大型项目来说,强类型更有利,可以降低系统的复杂度,在编译时就发现类型错误,减轻程序员的负担。 一直有人尝试,让 JavaScript 变成强类型语言。在官方最...
今天在处理jquery根据cookie是否存在而使用trigger触发元素的click事件的时候遇到这个问题,各种调试都没能找出引起问题的原因所在,后来在stackoverflow中搜索到相关问题,并用其所提到的原因解决了这个问题。整理英文原版如下:question:Im figuring out why this simple script is not working:jQuery.noConflict(); jQuery(document).ready(function() {jQuery(.next_button a).trigger(click); });noConflict is necessary b...
WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的userData,Firefox下面的globalStorage,以及Flash的本地存储,除了Flash之外,其他的几个都有一些兼容性的问题。sessionStorage与localStorageWeb Storage实际上由两部分组成:sessionStorage与localStorage。sessionStorage用于本地存储一个会...
Chrome 更新后出现了 jquery.min.map 404 (Not Found) 的信息这个到底是什么东西?查询了一下,得到了以下资料JQuery 官方解释摘录一下內容从 jQuery 1.9.0 版本后在原始代码里会有 @ sourceMappingURL=jquery.min.map什么是Source map简单说,Source map就是一个信息文件,里面存储着位置信息。也就是说,转换后的代码的每一个位置,所对应的转换前的位置。有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码。...
优化对比 : 未优化前:index.html引入一个main.js文件,体积2M以上。 优化后入:index.html引入main.js、commons.js、charts.js、other.js。以达到将main.js平分目的。每个文件控制300k以内.(如果高兴100k也没问题) 用到的一堆库及工具: vue、webpack、babel、highcharts、echarts、jquery、html2canvas******此去省略若干m代码 问题: 开发环境用webpack后发现单个js文件5m。 生产环境借助vue-cli的webpac...
FastClick现在有现成的插件fastclick可以解决这个问题,但是也有弊端:GitHub上最新版本的插件大小为25.4kb,轻量为趋势,能省则省。它的核心思想是取消默认的click时间,判断当前dom节点的类型进行相应的操作,这个判断过程较为繁琐。MyTapEvent本人最近在做微信项目,由于fastclick插件存在一定弊端,因此开发了一个简单的tap事件,主要思想有以下几点:Thinking一次tap事件包含touchstart和touchmove(轻微移动)以及touchend三种...
forEach 是在第五版本里被添加到 ECMA-262 标准的;这样它可能在标准的其他实现中不存在,你可以在你调用 forEach 之前 插入下面的代码,在本地不支持的情况下使用 forEach()。该算法是 ECMA-262 第5版中指定的算法。算法假定Object和TypeError拥有它们的初始值。callback.call 等价于Function.prototype.call()。 if ( !Array.prototype.forEach ) {Array.prototype.forEach = function forEach( callback, thisArg ) {var T, k;i...
通过createElement_x_x创建的iframe的onload事件在有些时候不响应,具体原因和解决办法如下。首先,我们来看一下下面这种方法: function?createFrame(){?var?frame = document.cerateElement("iframe");frame.onload =?function(){alert("loaded - createFrame");}frame.src =?"http://www.phper.org.cn";document.body.a(frame);}这一段在FF下是完全如我们所想,能够达到预期效果,但是在IE下面似乎就失效了,导致这种结果的原因...
在第 5 版时,every 被添加进 ECMA-262 标准;因此在某些实现环境中不被支持。你可以把下面的代码放到脚本的开头来解决此问题,该代码允许在那些没有原生支持 every 的实现环境中使用它。该算法是 ECMA-262 第5版中指定的算法,假定 Object 和 TypeError 拥有它们的初始值,且 fun.call 等价于Function.prototype.call。 if (!Array.prototype.every) {Array.prototype.every = function(fun /*, thisArg */){'use strict';if (thi...
首先我们先来判断一下浏览器是否支持js的forEach,代码如下: if (typeof Array.prototype.forEach != 'function') {//不支持,此时我们需要自己定义一个类似forEach功能的函数。 }如果浏览器不支持forEach,我们就需要自己写一个foreach功能的函数。具体函数体请看下面代码: function(callback){for (var i = 0; i 所以,解决IE8不支持forEach的方法应该是这样的: if (typeof Array.prototype.forEach != 'function') {Array.pr...
具体解决方法如下:假如不存在 Array.isArray(),则在其他代码之前运行下面的代码将创建该方法。 if (!Array.isArray) {Array.isArray = function(arg) {return Object.prototype.toString.call(arg) === '[object Array]';}; }解释:代码首先判断是否存在Array.isArray,如果不存在,则将自定义的JS函数赋值给Array.isArray。
lastIndexOf 在 ECMA-262 标准第 5 版被添加。因此它在不兼容该标准的浏览器中可能不被支持。你可以把下面代码添加到脚本中来使那些没有实现该方法的实现环境支持该方法。 if (!Array.prototype.lastIndexOf) {Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {'use strict';if (this === void 0 || this === null) {throw new TypeError();}var n, k,t = Object(this),len = t.length >>> 0;if (len === ...
filter 被添加到 ECMA-262 标准第 5 版中,因此在某些实现环境中不被支持。可以把下面的代码插入到脚本的开头来解决此问题,该代码允许在那些没有原生支持 filter 的实现环境中使用它。 if (!Array.prototype.filter) {Array.prototype.filter = function(fun /*, thisArg */){"use strict";if (this === void 0 || this === null)throw new TypeError();var t = Object(this);var len = t.length >>> 0;if (typeof fun !== "funct...
jquery Deferred 快速解决异步回调的问题 function ok(name){var dfd = new $.Deferred();callback:func(){return dfd.resolve( response );}return dfd.promise(); }$.when(ok(1),ok(2)).then(function(resp1,resp2){})//相关API 分成3类1类:$.when(pro1,pro1) 将多个 promise 对象以and的关系 合并为1个2类:promise 激发为 解决 deferred.resolve([ args ] ) deferred.resolveWith( context, [ args ] )和 拒绝 .reject .reje...