`
ralphr
  • 浏览: 140832 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JS高级应用(一)

    博客分类:
  • web
阅读更多

页面跳转:
  window.location.href('地址')
  window.open('地址', '_self')
打开新窗口:
  window.open('地址', '_blank')
  只显示地址栏:window.open('地址', 'title', 'location=1, height=200, width=500')
  只显示状态栏:window.open('地址', 'title', 'status=1')
  只显示工具栏:window.open('地址', 'title', 'toolbar=1')
  只显示菜单栏:window.open('地址', 'title', 'menubar=1')
  一个不少:window.open('地址', 'title)
  光棍但可以调整大小:window.open('地址', 'title', 'resizable=1')
去掉所有空格:
  Object.replace(/^\s+|\s+$/g, "")
屏蔽鼠标:
  oncontextmenu="window.event.returnValue=false"
取消选取:
  onselectstart="return false"
不允许粘贴:
  onpaste="return false"
关闭输入法:
  <input style="ime-mode:disabled">
不允许另存为:
  <noscript><iframe src=*.html></iframe></noscript>
得到上一页来源:
  document.referrer
弹出窗口总在最上:
  <body >
弹出确认对话框:
  comfirm('文本')"
  <script>if(confirm('文本')){//确定}else{//取消}
回车转换Tab键:
  if(window.event.keyCode==13){event.keyCode=9}
返回上一页:
  history.go(-1)
重新加载页面:
  window.location.reload()
子页面中调父页面中的方法:
  window.opener.function()
子页面中访问父页面中名为name的控件值:
  window.opener.name.value
子页面中访问父页面中表单中名为name的控件值:
  window.opener.formName.nam.value
得到控件的绝对位置:
  function getIE() {
    var t = e.offsetTop;
    var l = e.offsetLeft;
    while (e = e.offsetParent) {
      t += e.offsetTop;
      l += e.offsetLeft;
    }
    alert("top=" + t + " and left=" + l);
  }
光标停在文本框文字的最后:
  function toEnd() {
    var e = event.srcElement;
    var r = e.createTextRange();
    r.moveStart("character", e.value.length);
    r.collapse(true);
    r.select();
  }
  <input type="text" value="end" >
屏蔽功能键(Shift, Alt, Ctrl)
  function testKey() {
    if (event.shiftKey) {  // altKey; ctrlKey
      alert("Shift");
    }
  }
不要滚动条:
  <body scroll="no">
让竖条没有:
  <body style="overflow:scroll; overflow-y: hidden">
让横条没有:
  <body style="overflow:scroll; overflow-x: hidden">
去掉图片链接点击后图片周围的虚线:
  <a href="#" ><img src="test.jpg"></a>
在子窗体中刷新父窗体:
  window.opener.location.reload()
设置打开窗口的大小:
  <body 100)">
设置打开窗口的位置:
  <body 100)">
得到窗体大小:
  document.body.clientWidth;
  document.body.clientHeight;
TEXTAREA自适应文字行数:
  <textarea rows="1" cols="17" onpropertychange="this.style.posHeight=this.scrollHeight></textarea>
屏蔽脚本错误:
  function killErrors() {
    return true;
  }
  window.onerror=killErrors();
判断是否是字符:
  if (/[^/x00-/xff]/g.test(str)) {
    alert("有汉字");
  } else {
    alert("全是字符");
  }
screen.属性:
  availHeight 获取系统屏幕的工作区域高度,排除 Microsoft&reg; Windows&reg; 任务栏。
  availWidth 获取系统屏幕的工作区域宽度,排除 Windows 任务栏。
  bufferDepth 设置或获取用于画面外位图缓冲颜色的每像素位数。
  colorDepth 获取用于目标设置或缓冲区的颜色每像素位数。
  deviceXDPI 设置或获取系统屏幕水平每英寸点数(DPI)的数值。
  deviceYDPI 设置或获取系统屏幕垂直每英寸点数(DPI)的数值。
  fontSmoothingEnabled 获取用户是否在控制面板的显示设置中启用了圆整屏幕字体边角的选项。
  height 获取屏幕的垂直分辨率。
  logicalXDPI 获取系统屏幕水平每英寸点数(DPI)的常规数值。
  logicalYDPI 获取系统屏幕垂直每英寸点数(DPI)的常规数值。
  updateInterval 设置或获取屏幕的更新间隔。
  width 获取屏幕的垂直分辨率。
得到div的height值:
  div.offsetHeight(带滚动条的完整高度)
  div.clientHeight(内容的高度)

//各种尺寸

s   +=  "\r\n网页可见区域宽:"+   document.body.clientWidth;
s   +=  "\r\n网页可见区域高:"+   document.body.clientHeight;
s   +=  "\r\n网页可见区域高:"+   document.body.offsetWeight   +"   (包括边线的宽)";
s   +=  "\r\n网页可见区域高:"+   document.body.offsetHeight   +"   (包括边线的宽)";
s   +=  "\r\n网页正文全文宽:"+   document.body.scrollWidth;
s   +=  "\r\n网页正文全文高:"+   document.body.scrollHeight;
s   +=  "\r\n网页被卷去的高:"+   document.body.scrollTop;
s   +=  "\r\n网页被卷去的左:"+   document.body.scrollLeft;
s   +=  "\r\n网页正文部分上:"+   window.screenTop;
s   +=  "\r\n网页正文部分左:"+   window.screenLeft;
s   +=  "\r\n屏幕分辨率的高:"+   window.screen.height;
s   +=  "\r\n屏幕分辨率的宽:"+   window.screen.width;
s   +=  "\r\n屏幕可用工作区高度:"+   window.screen.availHeight;
s   +=  "\r\n屏幕可用工作区宽度:"+   window.screen.availWidth;




//过滤数字

<input type=text onkeypress="return event.keyCode>=48&&event.keyCode<=57||(this.value.indexOf('.')<0?event.keyCode==46:false)" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false">


//特殊用途

<input type=button value=导入收藏夹 onclick="window.external.ImportExportFavorites(true,'http://localhost');">
<input type=button value=导出收藏夹 onclick="window.external.ImportExportFavorites(false,'http://localhost');">
<input type=button value=整理收藏夹 onclick="window.external.ShowBrowserUI('OrganizeFavorites', null)">
<input type=button value=语言设置 onclick="window.external.ShowBrowserUI('LanguageDialog', null)">
<input type=button value=加入收藏夹 onclick="window.external.AddFavorite('http://www.google.com/', 'google')">
<input type=button value=加入到频道 onclick="window.external.addChannel('http://www.google.com/')">
<input type=button value=加入到频道 onclick="window.external.showBrowserUI('PrivacySettings',null)">



//不缓存

<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="0">



//正则匹配

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/  
匹配首尾空格的正则表达式:(^\s*)|(\s*$)(像vbscript那样的trim函数)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
以下是例子:
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
1.用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"



//消除图像工具栏

<IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="false">  
or
<head>
<meta http-equiv="imagetoolbar" content="no">
</head>



//光标停在文字最后


<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">


//页面进入和退出的特效

进入页面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
推出页面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)">  
这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使
用哪种特效,取值为1-23:
  0 矩形缩小  
  1 矩形扩大  
  2 圆形缩小
  3 圆形扩大  
  4 下到上刷新  
  5 上到下刷新
  6 左到右刷新  
  7 右到左刷新  
  8 竖百叶窗
  9 横百叶窗  
  10 错位横百叶窗  
  11 错位竖百叶窗
  12 点扩散  
  13 左右到中间刷新  
  14 中间到左右刷新
  15 中间到上下
  16 上下到中间  
  17 右下到左上
  18 右上到左下  
  19 左上到右下  
  20 左下到右上
  21 横条  
  22 竖条  
  23  



//计算内容宽和高

<SCRIPT   language="javascript">
function   test(obj)
{
   var   range   =   obj.createTextRange();
   alert("内容区宽度:   "   +   range.boundingWidth
              +  "px\r\n内容区高度:   "   +   range.boundingHeight   +  "px");   
}
</SCRIPT>
<BODY>
<Textarea id="txt" height="150">sdf</textarea><INPUT   type="button"   value="计算内容宽度"   onClick="test(txt)">
</BODY>




//无模式的提示框 function modelessAlert(Msg)
{
window.showModelessDialog("javascript:alert(\""+escape(Msg)+"\");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
}




//屏蔽按键
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
   <noscript><meta http-equiv="refresh" content="0;url=about:noscript"></noscript>
   <title>屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键</title>
</head>
<body>
<script language="Javascript"><!--
  //屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键
  //Author: meizz(梅花雨) 2002-6-18
function document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠标右键
function window.onhelp(){return false} //屏蔽F1帮助
function document.onkeydown()
{
  if ((window.event.altKey)&&
   ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←
   (window.event.keyCode==39))) //屏蔽 Alt+ 方向键 →
   {
    alert("不准你使用ALT+方向键前进或后退网页!");
    event.returnValue=false;
   }
   /* 注:这还不是真正地屏蔽 Alt+ 方向键,
    因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放,
    用鼠标点掉警告框,这种屏蔽方法就失效了。以后若
    有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/

  if ((event.keyCode==8)   ||                //屏蔽退格删除键
   (event.keyCode==116)||                //屏蔽 F5 刷新键
   (event.ctrlKey && event.keyCode==82)){ //Ctrl + R
    event.keyCode=0;
    event.returnValue=false;
    }
  if (event.keyCode==122){event.keyCode=0;event.returnValue=false;}  //屏蔽F11
  if (event.ctrlKey && event.keyCode==78) event.returnValue=false; //屏蔽 Ctrl+n
  if (event.shiftKey && event.keyCode==121)event.returnValue=false;  //屏蔽 shift+F10
  if (window.event.srcElement.tagName == "A" && window.event.shiftKey)  
   window.event.returnValue = false;          //屏蔽 shift 加鼠标左键新开一网页
  if ((window.event.altKey)&&(window.event.keyCode==115))          //屏蔽Alt+F4
   {
   window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
   return false;
   }
}
</script>
屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键
</body>
</html>



//屏蔽打印
<style>
@media print{
* {display:none}
}
</style>


//刷新后不变的文本框 <HTML>
<HEAD>
<META NAME="save" CONTENT="history">
<STYLE>
.sHistory {behavior:url(#default#savehistory);}
</STYLE>
</HEAD>
<BODY>
<INPUT class=sHistory type=text id=oPersistInput>
</BODY>
</HTML>


//访问剪贴板

event.dataTransfer.setData("URL", oImage.src);
sImageURL = event.dataTransfer.getData("URL")
(2)普通访问
window.clipboardData.setData("Text",oSource.innerText);
window.clipboardData.getData("Text");



//操作COOKIE

function SetCookie(sName, sValue)
{
document.cookie = sName + "=" + escape(sValue) + "; ";
}
function GetCookie(sName)
{
var aCookie = document.cookie.split("; ");
for (var i=0; i < aCookie.length; i++)
{

  var aCrumb = aCookie.split("=");
  if (sName == aCrumb[0])  
  return unescape(aCrumb[1]);
}
  
}
function DelCookie(sName)
{
document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
}



//setTimeout增加参数

<script>
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
  var argu = Array.prototype.slice.call(arguments,2);
  var f = (function(){ fRef.apply(null, argu); });
  return _st(f, mDelay);
}
return _st(fRef,mDelay);
}
function test(x){
alert(x);
}
window.setTimeout(test,1000,'fason');
</script>



//自定义的apply,call

Function.prototype.apply = function (obj, argu) {
if (obj) obj.constructor.prototype._caller = this;  
var argus = new Array();
for (var i=0;i<argu.length;i++)
   argus = "argu[" + i + "]";
var r;
eval("r = " + (obj ? ("obj._caller(" + argus.join(",") + ");") : ("this(" + argus.join(",") + ");")));
return r;
};
Function.prototype.call = function (obj) {
var argu = new Array();
for (var i=1;i<arguments.length;i++)
   argu[i-1] = arguments;
return this.apply(obj, argu);
};       


//下载文件

function DownURL(strRemoteURL,strLocalURL)
{
try
{
  var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP");
   xmlHTTP.open("Get",strRemoteURL,false);
   xmlHTTP.send();
  var adodbStream=new ActiveXObject("ADODB.Stream");
   adodbStream.Type=1;//1=adTypeBinary
   adodbStream.Open();
   adodbStream.write(xmlHTTP.responseBody);
   adodbStream.SaveToFile(strLocalURL,2);
   adodbStream.Close();
   adodbStream=null;
   xmlHTTP=null;

}
catch(e)
{
   window.confirm("下载URL出错!");
}
//window.confirm("下载完成.");
}


//检验连接是否有效

function getXML(URL)  
{
var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
xmlhttp.Open("GET",URL, false);  
try
{  
   xmlhttp.Send();
}
catch(e){}
finally  
{
  var result = xmlhttp.responseText;
  if(result)  
   {
if(xmlhttp.Status==200)
{
return(true);
}
else  
{
return(false);
}
   }
  else  
   {
return(false);
   }
}
}
分享到:
评论

相关推荐

    javascript高级应用开发培训讲义

    javascript高级应用开发培训讲义

    Javascript高级应用与实践.pdf

    Javascript高级应用与实践.pdf

    高清 Javascript高级应用与实践 夏天著 中文 PDF版

    Javascript高级应用与实践 夏天著 中文 PDF版 Javascript高级应用与实践 夏天著 中文 PDF版 Javascript高级应用与实践 夏天著 中文 PDF版 Javascript高级应用与实践 夏天著 中文 PDF版 Javascript高级应用与实践 ...

    JavaScript高级应用与实践PDF版本下载.txt

    JavaScript高级应用与实践PDF版本下载

    JavaScript高级应用与实践

    资源名称:Javascript高级应用与实践内容简介:本书的内容涵盖大量提升Javascript性能的一些技巧、鲜为人知的写法,以及Javascript在Web项目中某些智能的、经典的设计。本书在讲解过程中会有大量...

    JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools

    JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools

    js高级教你学好前端

    强化JavaScript,JavaScript 是因特网上最流行的脚本语言,它存在于全世界所有 Web 浏览器中,能够增强用户与 Web 站点和 Web 应用程序之间的交互。

    JavaScript 高级编程

    很详细透彻的 javascript 网上收集 的 但是不知道是那本书 知道的告诉我下 我去买本 入门与提高 javascript教程 入门与提高 javascript教程入门与提高 javascript教程

    JavaScript高级应用:文件操作篇.doc

    JavaScript高级应用:文件操作篇

    JavaScript应用实例-高级输入法.js

    JavaScript应用实例-高级输入法.js

    《JavaScript高级应用》复习试题.rar

    《JavaScript高级应用》复习试题.rar

    W3C JavaScript 高级教程.rar

    JavaScript 是因特网上最流行的脚本语言,它存在于全世界所有 Web 浏览器中,能够增强用户与 Web 站点和 Web 应用程序之间的交互。 本教程是 w3school JavaScript 教程的高级版本。 本教程从 JavaScript 的历史...

    Javascript高级应用与实践

    js 使用人员掌握初级 ,向高级进阶的不错的教程,书中例举了大量运行耗时的js实例,并一一进行了优化。 书中也有不少js的操作技巧及一些鲜为人知的用法。 书中阐述了海量交易项目的js项目经验

    node.js高级教程

    node.js高级教程 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用

    java高级应用教程

    前台的简要制作和后台的搭建,适合初学者,讲解的详细,是开始着手的好教程,希望适合你

    Backbone.js应用程序开发

    本书的作者是谷歌chrome团队的工程师addy osmani,他还演示了框架的高级应用。, 《backbone.js应用程序开发》包括以下内容:, 了解backbone.js如何给客户端带来mvc方面的好处;, 编写易于阅读的、结构化的和易扩展...

    JavaScript_高级编程

    JavaScript一种直译式脚本语言,是一种动态...它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

    BACKBONE.JS应用程序开发

    本书的作者是谷歌chrome团队的工程师addy osmani,他还演示了框架的高级应用。, 《backbone.js应用程序开发》包括以下内容:, 了解backbone.js如何给客户端带来mvc方面的好处;, 编写易于阅读的、结构化的和易扩展...

    js高级程序设计第三版(高清中文含源码压缩)JavaScript 超级畅销书的最新版

    js高级程序设计第三版(高清中文含源码压缩)JavaScript 超级畅销书的最新版。 本书是 JavaScript 超级畅销书的最新版。ECMAScript 5 和 HTML5 在标准之争中双双胜出,使大量 专有实现和客户端扩展正式进入规范,同时...

Global site tag (gtag.js) - Google Analytics