javascript有用小功能总结(未完待续)
1)javascript让页面标题滚动效果
代码如下:
<title>您好,欢迎访问我的博客</title>
<script type="text/javascript">
function scroll() {
//获取title信息。
var titleInfo = document.title;
//获取title第一个字符(数字、字母)。
//注释:字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
var firstInfo = titleInfo.charAt(0);
//获取第二位到最后的信息。
var lastInfo = titleInfo.substring(1, titleInfo.length);
//拼接输出信息
document.title = lastInfo + firstInfo;
}
//使用setInterval()方法,每隔0.5s执行
setInterval("scroll()", 500);
</script>
2)屏蔽鼠标右键(for IE8&IE10,其它IE版本或浏览器有待验证)
<script type="text/javascript">
//屏蔽鼠标右键
document.oncontextmenu = function()
{
event.returnValue = false;
}
</script>
3)回车键执行目标脚本
假如页面中有个LinkButton做的查询按钮(ID为lbtSearch),回车键实现查询,代码如下:
<script type="text/javascript">
//回车键实现查询
document.onkeydown = function(e)
{
if(!e) e = window.event;//IE中是window.event,Firefox中是e
if((e.keyCode || e.which) == 13)
{
var obj = document.getElementById("lbtSearch");
obj.click();
}
}
</script>
4)屏蔽退格键(BackSpace),for IE
代码如下:
<script type="text/javascript">
//屏蔽退格键
document.onkeydown = function()
{
if(event.keyCode == 8)
{
if((event.srcElement.tagName.toLowerCase() == "input" || event.srcElement.tagName.toLowerCase() == "textarea") && event.srcElement.isContentEditable == false)
{
event.returnValue = false;
}
}
}
</script>
这里我用的是tagName作元素类型筛选,也可以用type作类型筛选( event.srcElement.type == "text" || event.srcElement.type == "password" || event.srcElement.type == "textarea" )
5)背景自动变色
代码如下:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>背景自动变色</title>
<script type="text/javascript">
var Arraycolor = new Array("#00FF66", "#FFFF99", "#99CCFF", "#FFCCFF", "#FFCC99", "#00FFFF", "#FFFF00", "#FFCC00", "#FF00FF");
var n = 0;
function turncolors()
{
n++;
if (n == (Arraycolor.length - 1)) n = 0;
document.bgColor = Arraycolor[n];
setTimeout("turncolors()", 1000);
}
turncolors();
</script>
</head>
<body>
<p>背景自动变色</p>
</body>
</html>
6)简易方法判断浏览器的类型和版本
如何判断浏览器的类型和版本?使用JavaScript的内置对象 navigator 的属性userAgent的值来判断(navigator.userAgent)。
navigator是javascript的内置对象,通常用于检测浏览器与操作系统的版本。 常用的属性有:
- appCodeName -- 浏览器代码名的字符串表示
- appVersion -- 浏览器版本信息的字符串表示
- cookieEnabled -- 如果启用cookie返回true,否则返回false
- javaEnabled -- 如果启用java返回true,否则返回false
- platform -- 浏览器所在计算机平台的字符串表示
- plugins -- 安装在浏览器中的插件数组
- taintEnabled -- 如果启用了数据污点返回true,否则返回false
- userAgent -- 用户代理头的字符串表示(就是包含浏览器版本信息等的字符串)
下面说明一段js正则表达式:
var str = "123123";
var reg = /123/;
alert(reg.test(str));
上述js作用是检测 str 这一个字符串中是否包含123这样的字串。
进入正题,直接上代码(ExtJs使用的就是这种方式判断的):
<script type="text/javascript">
var ua = navigator.userAgent.toLowerCase();
function check(r)
{
return r.test(ua);
}
/**
* return IE,IE6,IE7,IE8,IE9,Chrome,Firefox,Opera,WebKit,Safari,Others
*/
function getBrowserName()
{
var browserName;
var isOpera = check(/opera/);
var isChrome = check(/chrome/);
var isFirefox = check(/firefox/);
var isWebKit = check(/webkit/);
var isSafari = !isChrome && check(/safari/);
var isIE = !isOpera && check(/msie/);
var isIE7 = isIE && check(/msie 7/);
var isIE8 = isIE && check(/msie 8/);
if(isIE8)
{
browserName = "IE8";
}else if(isIE7)
{
browserName = "IE7";
}else if(isIE)
{
browserName = "IE";
}else if(isChrome)
{
browserName = "Chrome";
}else if(isFirefox)
{
browserName = "Firefox";
}else if(isOpera)
{
browserName = "Opera";
}else if(isWebKit)
{
browserName = "WebKit";
}else if(isSafari)
{
browserName = "Safari";
}else
{
browserName = "Others";
}
return browserName;
}
</script>
简易方法判断浏览器的类型和版本
7)JavaScript调用客户端的可执行文件
<script type="text/javascript">
<!--打开记事本程序-->
function openNotepad()
{
var wsh=new ActiveXObject("wscript.shell")
wsh.run("notepad.exe")//如果在“运行”可以运行就可以在此直接写,否则要写上绝对路径
}
<!--打开计算器程序-->
function openCalc()
{
var wsh=new ActiveXObject("wscript.shell");
wsh.run("calc.exe");
}
<!--打开指定位置文件-->
function openFile(file)
{
var wsh=new ActiveXObject("wscript.shell");
wsh.run(file);
}
</script>
<input type="button" id="notepad" value="Notepad" onclick="openNotepad();" />
<input type="button" id="calc" value="calc" onclick="openCalc();" />
<input type="button" id="file" value="file" onclick="openFile('c://test.txt');" />
8)js页面跳转及刷新(本页面、父页面、最外层页面)
下面为大家分享下不同页面之家的跳转问题,有需要的朋友可以参考下。
"window.location.href"、"location.href"是本页面跳转
"parent.location.href"是上一层页面跳转
"top.location.href"是最外层的页面跳转
举例说明:A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写
"window.location.href"、"location.href":D页面跳转
"parent.location.href":C页面跳转
"top.location.href":A页面跳转
注意:如果D页面中有form的话,则
<form>: form提交后D页面跳转
<form target="_blank">: form提交后弹出新页面
<form target="_parent">: form提交后C页面跳转
<form target="_top"> : form提交后A页面跳转
关于页面刷新,D页面中这样写:
"location.reload();": 本页面刷新
"parent.location.reload();": C页面刷新(当然也可用子窗口的opener对象来获得父窗口的对象:window.opener.document.location.reload();)
"top.location.reload();": A页面刷新
<script type="text/javascript">
// 解决session过期后跳到login页面却跳不出html frameset框架的问题
if (window != top)
{
top.location.href = location.href;
}
</script>
未完待续,慢慢补充...
javascript有用小功能总结(未完待续)的更多相关文章
- Javascript之换肤(未完待续)
这个项目我还没有完全写出来,先记录至此.感觉是方法不对,背景图片的切换方法有Problem.如若有一大神发现了我的文章,还望指导,吾将感激不尽.日后代码还会再钻研再改改. <head> & ...
- linux 维护常见场景小命令 (未完待续)
1.安装KDE桌面 [root@rhel06 ~]# yum -y groupinstall "X Windows System" "KDE Desktop" ...
- 关于DOM的一些总结(未完待续......)
DOM 实例1:购物车实例(数量,小计和总计的变化) 这里主要是如何获取页面元素的节点: document.getElementById("...") cocument.query ...
- 一篇文章让Oracle程序猿学会MySql【未完待续】
一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...
- 省钱版----查找 IoT 设备TTL线序__未完待续
作者:仙果 原文来自:省钱版—-查找 IoT 设备TTL线序 省钱版----查找 IoT 设备TTL线序__未完待续 缘由 在IoT固件调试分析的过程中,建议首先在IoT设备的板子上焊接调试线,这是能 ...
- Go web编程学习笔记——未完待续
1. 1).GOPATH设置 先设置自己的GOPATH,可以在本机中运行$PATH进行查看: userdeMacBook-Pro:~ user$ $GOPATH -bash: /Users/user/ ...
- Reading | 《数字图像处理原理与实践(MATLAB版)》(未完待续)
目录 一.前言 1.MATLAB or C++ 2.图像文件 文件头 调色板 像素数据 3.RGB颜色空间 原理 坐标表示 4.MATLAB中的图像文件 图像类型 image()函数 imshow() ...
- 构建Linux根文件系统(未完待续)
所谓制作根文件系统, 就是创建各种目录, 并且在里面创建各种文件. 比如在/bin ./sbin 目录下存放各种可执行程序, 在/etc 目录下存放配置文件, 在/lib 目录下存放库文件 ...
- MVC丶 (未完待续······)
希望你看了此小随 可以实现自己的MVC框架 也祝所有的程序员身体健康一切安好 ...
随机推荐
- C#异步编程(一)
异步编程简介 前言 本人学习.Net两年有余,是第一次写博客,虽然写的很认真,当毕竟是第一次,肯定会有很多不足之处, 希望大家照顾照顾新人,有错误之处可以指出来,我会虚心接受的. 何谓异步 与同步相对 ...
- Sublime的使用
1.一个可扩展性强的编辑工具 2.如何安装扩展 通过View->Show Console菜单打开命令行. 按图操作: 在控制台输入,然后回车: import urllib.request,os; ...
- SQL Server-表表达式基础回顾(二十四)
前言 从这一节开始我们开始进入表表达式章节的学习,Microsoft SQL Server支持4种类型的表表达式:派生表.公用表表达式(CTE).视图.内嵌表值函数(TVF).简短的内容,深入的理解, ...
- DBSCAN密度聚类算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种很典型的密度聚类算法,和K-M ...
- 信息安全-2:python之hill密码算法[原创]
转发注明出处:http://www.cnblogs.com/0zcl/p/6106513.html 前言: hill密码算法我打算简要介绍就好,加密矩阵我用教材上的3*3矩阵,只做了加密,解密没有做, ...
- [转载]敏捷开发之Scrum扫盲篇
现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述S ...
- 在开源中国(oschina)git中新建标签(tags)
我今天提交代码到主干上面,本来想打个标签(tags)的. 因为我以前新建过标签(tags),但是我现在新建的时候不知道入库在哪了.怎么找也找不到了. 从网上找资料也没有,找客服没有人理我,看到一个交流 ...
- 实现php连接memcached
准备工作: 实现lnmp环境 给php添加模块,so库 下载扩展包:memcache-2.2.5.tgz wget http://pecl.php.net/get/memcache-2.2.5.tgz
- Struts2.5需要的最少jar文件
以Struts2.5.2为例 从官网上下载“struts-2.5.2-min-lib.zip”,里面有7个jar文件: commons-fileupload-1.3.2.jarcommons-io-2 ...
- 续 CentOS7(mini) 运行MVC5 + Mariadb
上一篇,介绍了在CentOS7上使用mono官方二进制安装包快速安装mono环境 并且成功运行了一个Owin自宿主应用(Booker) 由于Owin自宿主应用不需要System.Web的支持,所以可以 ...