`

js脚本积累(转)

    博客分类:
  • js
 
阅读更多

1、开发人员需要确定某个给定的节点是不是另一个节点的后代,使用contains方法,不过火狐不支持,他需要compareDocumentPosition()方法

 

为了使用一些浏览器和能力检测,就可以写出如下通用的contains函数

function contains(refNode, otherNode)
{
   if(typeof refNode.contains == "function" && (!client.engine.webkit || client.engine.webkit >= 522)) {
      return refNode.contains(otherNode);
   }
    else if(typeof refNode.compareDocumentPosition == "function") {
    return !!(refNode.compareDocumentPosition(otherNode) & 16);
  } 
   else  { 
    var node = otherNode.parentNode;
   do {
      if (node == refNode) {
            return true;
      }
       else {
            node = node.parentNode;
      }
   } while(node !==null);
      return false;
   }
}




 

var client = function() {
	var engine = {
		// rendering engines
		ie : 0,
		gecko : 0,
		webkit : 0,
		khtml : 0,
		opera : 0,
		// specific version
		ver : null
	};
	var browser = {
		// browsers
		ie : 0,
		firefox : 0,
		safari : 0,
		konq : 0,
		opera : 0,
		chrome : 0,
		safari : 0,
		// specific version
		ver : null
		// detection of rendering engines/platforms/devices here
	};
	var system = {
		win : false,
		mac : false,
		x11 : false
	};
	// detect rendering engines/browsers
	var ua = navigator.userAgent;
	if (window.opera) {
		engine.ver = browser.ver = window.opera.version();
		engine.opera = browser.opera = parseFloat(engine.ver);
	} else if (/AppleWebKit\/(\S+)/.test(ua)) {
		engine.ver = RegExp['$1'];
		engine.webkit = parseFloat(engine.ver);
		// figure out if it’s Chrome or Safari
		if (/Chrome\/(\S+)/.test(ua)) {
			browser.ver = RegExp['$1'];
			browser.chrome = parseFloat(browser.ver);
		} else if (/Version\/(\S+)/.test(ua)) {
			browser.ver = RegExp['$1'];
			browser.safari = parseFloat(browser.ver);
		} else {
			// approximate version
			var safariVersion = 1;
			if (engine.webkit < 100) {
				safariVersion = 1;
			} else if (engine.webkit < 312) {
				safariVersion = 1.2;
			} else if (engine.webkit < 412) {
				safariVersion = 1.3;
			} else {
				safariVersion = 2;
			}
			browser.safari = browser.ver = safariVersion;
		}
	} else if (/KHTML\/(\S+)/.test(ua) || /Konqueror\/([^;]+)/.test(ua)) {
		engine.ver = browser.ver = RegExp['$1'];
		engine.khtml = browser.konq = parseFloat(engine.ver);
	} else if (/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)) {
		engine.ver = RegExp['$1'];
		engine.gecko = parseFloat(engine.ver);
		// determine if it’s Firefox
		if (/Firefox\/(\S+)/.test(ua)) {
			browser.ver = RegExp['$1'];
			browser.firefox = parseFloat(browser.ver);
		}
	} else if (/MSIE ([^;]+)/.test(ua)) {
		engine.ver = browser.ver = RegExp['$1'];
		engine.ie = browser.ie = parseFloat(engine.ver);
	}
	//detect browsers
	browser.ie = engine.ie;
	browser.opera = engine.opera;
    
    //detect platform
	var p = navigator.platform;
	system.win = p.indexOf('Win') == 0;
	system.mac = p.indexOf('Mac') == 0;
	system.x11 = (p.indexOf('X11') == 0) || (p.indexOf('Linux') == 0);
	if (system.win) {
		if (/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/.test(ua)) {
			if (RegExp['$1'] == 'NT') {
				switch (RegExp['$2']) {
					case '5.0' :
						system.win = '2000';
						break;
					case '5.1' :
						system.win = 'XP';
						break;
					case '6.0' :
						system.win = 'Vista';
						break;
					default :
						system.win = 'NT';
						break;
				}
			} else if (RegExp['$1'] == '9x') {
				system.win = 'ME';
			} else {
				system.win = RegExp['$1'];
			}
		}
	}
	return {
		engine : engine,
		system : system,
		browser : browser
	};
}();

//usage:
if (client.engine.webkit) { // if it’s WebKit
	if (client.browser.chrome) {
		// do something for Chrome
	} else if (client.browser.safari) {
		// do something for Safari
	}
} else if (client.engine.gecko) {
	if (client.browser.firefox) {
		// do something for Firefox
	} else {
		// do something for other Gecko browsers
	}
}
 

2、对于重复提交问题,js可以这么处理,我对百度首页做测试,嘎嘎

直接使用扣肉浏览器,在console里面输入以下内容

var btn = document.getElementById("su");
var form = document.forms[0];
form.onsubmit = function(event) {
   event.preventDefault();
   btn.disabled = true;
}
 

3、对于屏蔽输入字母情况

 

 

var filed = document.forms[0].elements[0];

filed.onkeypress = function(event) {
   if(/\d/.test(String.fromCharCode(event.charCode)) && event.charCode > 9 && !event.ctrlKey) {
       alert("你输入的是数字");
   }
}
 

4、对于textarea的字符数限制:使用jquery

 

//备注字符限制
		$('textarea[name="note"]').live('keyup', function() {
			var v = this.value.replace(/^\s+|\s+$/g, '');
			if (v.length > 100) {
				this.value = v.substring(0, 100);
				$('#limitCount').text('还可以输入0个字符')
			} else {
				$('#limitCount').text('还可以输入' + (100 - v.length) + '个字符')
			}
		}).live('blur', function() {
			var v = this.value.replace(/^\s+|\s+$/g, '');
			if (v.length > 100) {
				this.value = v.substring(0, 100);
				$('#limitCount').text('还可以输入0个字符')
			} else {
				this.value = v;
				$('#limitCount').text('还可以输入' + (100 - v.length) + '个字符')
			}
		});
 

5、对于html5,IE9一下版本浏览器,你要使用createElement方式在浏览器解析dom之前创建出IE未知元素,因为IE9一下版本浏览器碰到未知元素,他就不会正常解析,会导致dom的树结构错误,如果使用createElement方式,实现让dom知道,他们会神奇的解析正确。

 

 

<!--[if lt IE 9]>
<script>
	var e = ("abbr, article, aside, audio, canvas, datalist, details, figure, footer, header, hgroup, mark, menu,meter, nav, output, progress,section,time, video").split(',');
	for(var i = 0; i < e.length; i++) {
		document.createElement(e[i]);
	}
</script>
<![endif]-->

可以把上面这个命名为ltie9.js
然后在写html5的时候,在head中引用
<head>
......
   <script src='ltie9.js'/>
</head>
 

6、按钮变颜色:

 

<a href="javascript:void(0)" title="新增" name="pic_add_btn">
	<img alt="新增" src="res/img/btn_add.jpg" style="position: relative; left: -11px;"  width="25px;">
</a>
 

7、锚定扩展(回到顶部)

 

$('html,body').animate({
						scrollTop : $('#block'+current_block).offset().top
					}, 500, function() {
						a.addClass('current').siblings('.current').removeClass('current');
					});

可以在上面的方法基础上添加:
$('someBtn').click(调用上面的方法)

scrollTop回到里上端多远出
500是速度
function()是回到动作完成后,发生的事件
 

8、图片的幻灯片效果:

 

 

$(function(){
	$.fn.slider = function(op) {
		var e = this.find("img"), p = $('<p/>'), l = e.length, x = 0, h = [], ho = false;
		e.each(function(i, n) {
			h[i] = $('<span></span>').bind('mouseover', function() {
				$(this).addClass('active').siblings('.active').removeClass('active');
				e.eq($(this).index()).stop(true, true).fadeIn(500).siblings('img:visible').stop(true, true).fadeOut(500);
			}).appendTo(p);
		});
		p.appendTo(this);
		this.hover(function() {
			ho = true;
		}, function() {
			ho = false;
		});
		h[0].triggerHandler('mouseover');
		setInterval(function() {
			if (!ho) {
				if (++x == l)
					x = 0;
				h[x].triggerHandler('mouseover');
			}
		}, 5000);
	}
	$('#pd_detail_img').slider();
});
 

 然后对p,span进行css渲染

 

9、忽闪忽闪的效果

 

$(function(){
		    freshTip();
		})
		
		function freshTip() {
		    $('span[name="fresh_tip"]').each(function(){
				$(this).toggle();
				$(this).css("color", "red");
		    }) ;
		    setTimeout("freshTip()", 600);
		}

//setTimeout只调用一次,第一个参数,调用的方法名称以及参数"freshTip("+参数+")"。
 

 

 

 

 

 

 

  • 大小: 1.8 KB
分享到:
评论

相关推荐

    js个人脚本示例

    这个“js个人脚本示例”压缩包包含了作者精心整理的20个大类,总计343个源码示例,覆盖了JavaScript的多个关键领域,为学习和提升JavaScript技能提供了丰富的实践资源。 首先,我们来探讨一下JavaScript的基本语法...

    京东618自动叠蛋糕脚本auto.js

    为了配合脚本的使用,压缩包内还提供了Auto.js 4.1.0Alpha5.apk,这是一个运行JavaScript脚本的安卓应用,用户需要安装此应用才能在手机上运行auto.js脚本。此外,"京东618叠蛋糕自动版-全新自定义.js"和"叠蛋糕点击...

    脚本积累

    【标题】:“脚本积累”通常指的是在编程领域中,开发者通过编写一系列脚本来实现特定功能或自动化任务的集合。脚本语言如Python、JavaScript、Shell等,因其易学易用和高效灵活的特点,在IT行业中广泛应用。这个...

    常用JS脚本

    常用JS脚本,项目过程中积累的脚本,如自动生成大写金额等技术。

    常用的ASP、JS脚本,非常适合初学者(自已积累下来的)

    常用的ASP、JS脚本,非常适合初学者。这个资料是自已积累开始学ASP时一点点积累下来的,希望对初学ASP、JS的朋友有所帮助。(注:里面有一个ASP批量木马清理程序,可能有些杀毒软件为认为是病毒,其实不是。大家注意...

    共享资源,收集全网目前可用的最新的青龙面板脚本

    青龙面板的B站脚本可能用于自动完成观看视频、投硬币、分享等任务,帮助用户积累经验值和硬币,提升账号等级。这对于那些喜欢B站但又无法全天候在线的用户来说非常实用。 接下来是兑换实物的脚本。这通常涉及到参与...

    抖音快手等热门脚本合集.rar

    首先,我们来看看"auto.js",这是一款基于JavaScript的跨平台脚本工具,它允许用户编写JavaScript代码来控制Android设备。在抖音脚本中,`auto.js`可以用于自动化浏览视频、点赞、评论、分享等操作,甚至进行账号的...

    autojs最新蚂蚁森林能量收取脚本

    【标题】"autojs最新蚂蚁森林能量收取脚本"揭示了这个压缩包文件的主要内容,即一个使用AutoJS编写的自动化脚本,该脚本专为自动收取支付宝蚂蚁森林的游戏能量而设计。蚂蚁森林是一款流行的手机应用,用户通过虚拟...

    2020京东618叠蛋糕AutoJS脚本

    `京东618叠蛋糕2.0.js`是实际的AutoJS脚本文件,包含了执行任务的代码。用户需要有一定的JavaScript基础和对AutoJS的理解才能阅读和使用。`使用说明.txt`应提供关于如何配置和运行脚本的指导,这对于不熟悉AutoJS的...

    js脚本大全,Asp。net的所有常用源码

    结合"js脚本大全"和"ASP.NET的所有常用源码",我们可以预期这个压缩包可能包含各种JavaScript示例代码,如AJAX请求、表单验证脚本,以及ASP.NET的Web Forms或MVC项目的源码,可能涉及登录注册系统、数据库操作、页面...

    脚本(有题目和答案)

    在IT行业中,脚本语言是不可或缺的一部分,它们广泛应用于自动化任务、系统管理、网页开发以及软件测试等多个领域...同时,实践是检验真理的唯一标准,多动手编写脚本,不断积累经验,将使你在IT行业的竞争中更具优势。

    javascript 常见脚本属性

    总的来说,理解并熟练运用这些JavaScript脚本属性和方法,对于创建交互式的网页至关重要。它们允许开发者动态更新页面内容,响应用户交互,以及与服务器进行数据通信,极大地增强了网页的功能性和用户体验。在学习...

    js example积累

    "js example积累"这个标题表明我们即将探讨的是关于JavaScript的一些实用示例和经验积累,这对于初学者和有经验的开发者来说都是宝贵的资源。在这个压缩包文件中,可能包含了各种JavaScript的代码片段、实验项目或...

    个人收藏的脚本

    在“个人收藏的脚本”中,可能包含了各种JS特效,比如滑动菜单、轮播图、淡入淡出效果等,这些都是JavaScript与CSS协同工作的典型应用场景。这些特效往往通过CSS设置元素初始状态,然后利用JavaScript监听事件并改变...

    Unity3D脚本编写入门

    本教程旨在为初学者提供一个入门级的指南,主要讲解Unity中JavaScript脚本的基础知识和常用技巧。 #### 二、前提条件 在学习Unity脚本编写之前,有几个前提条件需要满足: 1. **Unity界面熟悉度**:本教程假设...

    unity3d游戏开发之脚本入门

    **编写脚本**:创建名为“Move1”的JavaScript脚本,用于读取键盘输入并控制相机移动。在`Update()`函数中加入以下代码: ```javascript function Update() { transform.Translate(Input.GetAxis("Horizontal"), 0,...

    声望料理_石器封包脚本赚钱_

    通常脚本可能采用Python、JavaScript、Lua或其他脚本语言编写,而要让它正确地与游戏客户端交互、控制游戏角色,则需要对游戏的通信协议和数据包格式有充分的理解。 总而言之,"声望料理_石器封包脚本赚钱"作为一款...

    unity脚本编程全论述 pdf格式

    Unity支持多种编程语言,包括C#、JavaScript(UnityJS,已被弃用)和Boo。其中,C#是最推荐的脚本语言,因为它具有丰富的库支持和强大的功能。脚本主要用于定义游戏对象的行为,例如角色移动、碰撞检测、游戏逻辑等...

    基于JavaScript、HTML、CSS、Vue的日常积累与总结设计源码

    该项目为基于JavaScript、HTML、CSS及Vue.js的综合性设计源码积累,共计包含479个文件,涵盖244个PNG图片、77个JavaScript脚本、40个JSON配置、34个HTML页面、28个CSS样式表、11个Markdown文档、9个GIF动画、5个JPG...

    2020京东618叠蛋糕js脚本(亲测好用)

    【京东618叠蛋糕js脚本】是京东在618大促期间推出的一种互动活动,用户可以通过参与“叠蛋糕”积累奖励,提高购物优惠。这个脚本是基于自动化工具【auto.js】编写的,旨在帮助用户自动完成叠蛋糕活动中的各种任务,...

Global site tag (gtag.js) - Google Analytics