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个人脚本示例”压缩包包含了作者精心整理的20个大类,总计343个源码示例,覆盖了JavaScript的多个关键领域,为学习和提升JavaScript技能提供了丰富的实践资源。 首先,我们来探讨一下JavaScript的基本语法...
为了配合脚本的使用,压缩包内还提供了Auto.js 4.1.0Alpha5.apk,这是一个运行JavaScript脚本的安卓应用,用户需要安装此应用才能在手机上运行auto.js脚本。此外,"京东618叠蛋糕自动版-全新自定义.js"和"叠蛋糕点击...
【标题】:“脚本积累”通常指的是在编程领域中,开发者通过编写一系列脚本来实现特定功能或自动化任务的集合。脚本语言如Python、JavaScript、Shell等,因其易学易用和高效灵活的特点,在IT行业中广泛应用。这个...
常用JS脚本,项目过程中积累的脚本,如自动生成大写金额等技术。
常用的ASP、JS脚本,非常适合初学者。这个资料是自已积累开始学ASP时一点点积累下来的,希望对初学ASP、JS的朋友有所帮助。(注:里面有一个ASP批量木马清理程序,可能有些杀毒软件为认为是病毒,其实不是。大家注意...
青龙面板的B站脚本可能用于自动完成观看视频、投硬币、分享等任务,帮助用户积累经验值和硬币,提升账号等级。这对于那些喜欢B站但又无法全天候在线的用户来说非常实用。 接下来是兑换实物的脚本。这通常涉及到参与...
首先,我们来看看"auto.js",这是一款基于JavaScript的跨平台脚本工具,它允许用户编写JavaScript代码来控制Android设备。在抖音脚本中,`auto.js`可以用于自动化浏览视频、点赞、评论、分享等操作,甚至进行账号的...
【标题】"autojs最新蚂蚁森林能量收取脚本"揭示了这个压缩包文件的主要内容,即一个使用AutoJS编写的自动化脚本,该脚本专为自动收取支付宝蚂蚁森林的游戏能量而设计。蚂蚁森林是一款流行的手机应用,用户通过虚拟...
`京东618叠蛋糕2.0.js`是实际的AutoJS脚本文件,包含了执行任务的代码。用户需要有一定的JavaScript基础和对AutoJS的理解才能阅读和使用。`使用说明.txt`应提供关于如何配置和运行脚本的指导,这对于不熟悉AutoJS的...
结合"js脚本大全"和"ASP.NET的所有常用源码",我们可以预期这个压缩包可能包含各种JavaScript示例代码,如AJAX请求、表单验证脚本,以及ASP.NET的Web Forms或MVC项目的源码,可能涉及登录注册系统、数据库操作、页面...
在IT行业中,脚本语言是不可或缺的一部分,它们广泛应用于自动化任务、系统管理、网页开发以及软件测试等多个领域...同时,实践是检验真理的唯一标准,多动手编写脚本,不断积累经验,将使你在IT行业的竞争中更具优势。
总的来说,理解并熟练运用这些JavaScript脚本属性和方法,对于创建交互式的网页至关重要。它们允许开发者动态更新页面内容,响应用户交互,以及与服务器进行数据通信,极大地增强了网页的功能性和用户体验。在学习...
"js example积累"这个标题表明我们即将探讨的是关于JavaScript的一些实用示例和经验积累,这对于初学者和有经验的开发者来说都是宝贵的资源。在这个压缩包文件中,可能包含了各种JavaScript的代码片段、实验项目或...
在“个人收藏的脚本”中,可能包含了各种JS特效,比如滑动菜单、轮播图、淡入淡出效果等,这些都是JavaScript与CSS协同工作的典型应用场景。这些特效往往通过CSS设置元素初始状态,然后利用JavaScript监听事件并改变...
本教程旨在为初学者提供一个入门级的指南,主要讲解Unity中JavaScript脚本的基础知识和常用技巧。 #### 二、前提条件 在学习Unity脚本编写之前,有几个前提条件需要满足: 1. **Unity界面熟悉度**:本教程假设...
**编写脚本**:创建名为“Move1”的JavaScript脚本,用于读取键盘输入并控制相机移动。在`Update()`函数中加入以下代码: ```javascript function Update() { transform.Translate(Input.GetAxis("Horizontal"), 0,...
通常脚本可能采用Python、JavaScript、Lua或其他脚本语言编写,而要让它正确地与游戏客户端交互、控制游戏角色,则需要对游戏的通信协议和数据包格式有充分的理解。 总而言之,"声望料理_石器封包脚本赚钱"作为一款...
Unity支持多种编程语言,包括C#、JavaScript(UnityJS,已被弃用)和Boo。其中,C#是最推荐的脚本语言,因为它具有丰富的库支持和强大的功能。脚本主要用于定义游戏对象的行为,例如角色移动、碰撞检测、游戏逻辑等...
该项目为基于JavaScript、HTML、CSS及Vue.js的综合性设计源码积累,共计包含479个文件,涵盖244个PNG图片、77个JavaScript脚本、40个JSON配置、34个HTML页面、28个CSS样式表、11个Markdown文档、9个GIF动画、5个JPG...
【京东618叠蛋糕js脚本】是京东在618大促期间推出的一种互动活动,用户可以通过参与“叠蛋糕”积累奖励,提高购物优惠。这个脚本是基于自动化工具【auto.js】编写的,旨在帮助用户自动完成叠蛋糕活动中的各种任务,...