js技巧大收集(3)

150.根据标签获得一组对象 
var coll = document.all.tags("DIV"); 
if (coll!=null) 

for (i=0; i<coll.length; i++)  
... 
}// 
151.实现打印预览及打印 
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT>  
<input type=button value=打印预览 οnclick="wb.execwb(7,1)"> 
<input type=button onClick=document.all.wb.ExecWB(6,1) value="打印">// 
152.不通过form,直接通过名字引用对象 
<INPUT TYPE="text" NAME="gg" value=aaaaa> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
alert(document.all.gg.value) 
//--> 
</SCRIPT>// 
153.使鼠标滚轮失效 
function document.onmousewheel() 

 return false; 
}// 
154.创建弹出窗口 
<SCRIPT LANGUAGE="JScript"> 
  var oPopup = window.createPopup(); 
  var oPopupBody = oPopup.document.body; 
  oPopupBody.innerHTML = "Display some <B>HTML</B> here."; 
  oPopup.show(100, 100, 200, 50, document.body); 
</SCRIPT>// 
155.取得鼠标所在处的对象 
var obj = document.elementFromPoint(event.x,event.y);// 
156.获得左边的对象 
<INPUT TYPE="text" NAME="gg"><INPUT TYPE="text" NAME="bb"  
οnclick="this.previousSibling.value='guoguo'">// 
157.定位鼠标 
document.all.hint_layer.style.left  = event.x+document.body.scrollLeft+10; 
document.all.hint_layer.style.top  = event.y+document.body.scrollTop+10;// 
158.向下拉框指定位置添加项目 
var op  = document.createElement("OPTION"); 
document.all.selected_items.children(index).insertAdjacentElement("BeforeBegin",op); 
op.text  = document.all.all_items[i].text; 
op.value = document.all.all_items[i].value;// 
  
159.判断一个窗口是否已经打开,如果已经打开,则关闭之 
var a; 
if(a)  
 a.close(); 
else 
 a=window.open('','','');// 
160.动态创建一个标签 
newElem  = document.createElement("DIV"); 
newElem.id = "hint_layer"; 
document.body.appendChild(newElem); 
document.all.hint_layer.innerText="guoguo";// 
161.标题栏 
document.title// 
162.背景图片 
<body style="BACKGROUND-ATTACHMENT: fixed" background="img/bgfix.gif" ></body>//背景图片不动 
<STYLE TYPE="text/css"> 
<!-- 
BODY {background-image:img/bgchild.jpg; 
background-position: center; 
background-repeat: no-repeat; 
background-attachment: fixed;} 
--> 
</STYLE>//背景图片居中 
163.设置透明效果 
document.form.xxx.filters.alpha.opacity=0~100// 
164.定义方法 
var dragapproved=false; 
document.οnmοuseup=new Function("dragapproved = false");// 
165.将数字转化为人民币大写形式 
function convertCurrency(currencyDigits) { 
// Constants: 
 var MAXIMUM_NUMBER = 99999999999.99; 
 // Predefine the radix characters and currency symbols for output: 
 var CN_ZERO = "零"; 
 var CN_ONE = "壹"; 
 var CN_TWO = "贰"; 
 var CN_THREE = "叁"; 
 var CN_FOUR = "肆"; 
 var CN_FIVE = "伍"; 
 var CN_SIX = "陆"; 
 var CN_SEVEN = "柒"; 
 var CN_EIGHT = "捌"; 
 var CN_NINE = "玖"; 
 var CN_TEN = "拾"; 
 var CN_HUNDRED = "佰"; 
 var CN_THOUSAND = "仟"; 
 var CN_TEN_THOUSAND = "万"; 
 var CN_HUNDRED_MILLION = "亿"; 
 var CN_SYMBOL = "人民币"; 
 var CN_DOLLAR = "元"; 
 var CN_TEN_CENT = "角"; 
 var CN_CENT = "分"; 
 var CN_INTEGER = "整"; 
// Variables: 
 var integral; // Represent integral part of digit number. 
 var decimal; // Represent decimal part of digit number. 
 var outputCharacters; // The output result. 
 var parts; 
 var digits, radices, bigRadices, decimals; 
 var zeroCount; 
 var i, p, d; 
 var quotient, modulus; 
// Validate input string: 
 currencyDigits = currencyDigits.toString(); 
 if (currencyDigits == "") { 
  alert("Empty input!"); 
  return ""; 
 } 
 if (currencyDigits.match(/[^,./d]/) != null) { 
  alert("Invalid characters in the input string!"); 
  return ""; 
 } 
 if ((currencyDigits).match(/^((/d{1,3}(,/d{3})*(.((/d{3},)*/d{1,3}))?)|(/d+(./d+)?))$/) == null) { 
  alert("Illegal format of digit number!"); 
  return ""; 
 } 
// Normalize the format of input digits: 
 currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters. 
 currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning. 
 // Assert the number is not greater than the maximum number. 
 if (Number(currencyDigits) > MAXIMUM_NUMBER) { 
  alert("Too large a number to convert!"); 
  return ""; 
 } 
// http://www.knowsky.com/ Process the coversion from currency digits to characters: 
 // Separate integral and decimal parts before processing coversion: 
 parts = currencyDigits.split("."); 
 if (parts.length > 1) { 
  integral = parts[0]; 
  decimal = parts[1]; 
  // Cut down redundant decimal digits that are after the second. 
  decimal = decimal.substr(0, 2); 
 } 
 else { 
  integral = parts[0]; 
  decimal = ""; 
 } 
 // Prepare the characters corresponding to the digits: 
 digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT,  
CN_NINE); 
 radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND); 
 bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); 
 decimals = new Array(CN_TEN_CENT, CN_CENT); 
 // Start processing: 
 outputCharacters = ""; 
 // Process integral part if it is larger than 0: 
 if (Number(integral) > 0) { 
  zeroCount = 0; 
  for (i = 0; i < integral.length; i++) { 
   p = integral.length - i - 1; 
   d = integral.substr(i, 1); 
   quotient = p / 4; 
   modulus = p % 4; 
   if (d == "0") { 
    zeroCount++; 
   } 
   else { 
    if (zeroCount > 0) 
    { 
     outputCharacters += digits[0]; 
    } 
    zeroCount = 0; 
    outputCharacters += digits[Number(d)] + radices[modulus]; 
   } 
   if (modulus == 0 && zeroCount < 4) { 
    outputCharacters += bigRadices[quotient]; 
   } 
  } 
  outputCharacters += CN_DOLLAR; 
 } 
 // Process decimal part if there is: 
 if (decimal != "") { 
  for (i = 0; i < decimal.length; i++) { 
   d = decimal.substr(i, 1); 
   if (d != "0") { 
    outputCharacters += digits[Number(d)] + decimals[i]; 
   } 
  } 
 } 
 // Confirm and return the final output string: 
 if (outputCharacters == "") { 
  outputCharacters = CN_ZERO + CN_DOLLAR; 
 } 
 if (decimal == "") { 
  outputCharacters += CN_INTEGER; 
 } 
 outputCharacters = CN_SYMBOL + outputCharacters; 
 return outputCharacters; 
}// 
  
166.xml数据岛绑定表格 
<html> 
<body> 
<xml id="abc" src="test.xml"></xml> 
<table border='1' datasrc='#abc'> 
<thead> 
<td>接收人</td> 
<td>发送人</td> 
<td>主题</td> 
<td>内容</td> 
</thead> 
<tfoot> 
<tr><th>表格的结束</th></tr> 
</tfoot> 
<tr> 
<td><div datafld="to"></div></td> 
<td><div datafld="from"></div></td> 
<td><div datafld="subject"></div></td> 
<td><div datafld="content"></div></td> 
</tr> 
</table> 
</body> 
</html> 
//cd_catalog.xml 
<?xml version="1.0" encoding="ISO-8859-1" ?>  
 <!--  Edited with XML Spy v4.2  
  -->  
 <CATALOG> 
 <CD> 
  <TITLE>Empire Burlesque</TITLE>  
  <ARTIST>Bob Dylan</ARTIST>  
  <COUNTRY>USA</COUNTRY>  
  <COMPANY>Columbia</COMPANY>  
  <PRICE>10.90</PRICE>  
  <YEAR>1985</YEAR>  
  </CD> 
 <CD> 
  <TITLE>Hide your heart</TITLE>  
  <ARTIST>Bonnie Tyler</ARTIST>  
  <COUNTRY>UK</COUNTRY>  
  <COMPANY>CBS Records</COMPANY>  
  <PRICE>9.90</PRICE>  
  <YEAR>1988</YEAR>  
  </CD> 
 <CD> 
  <TITLE>Greatest Hits</TITLE>  
  <ARTIST>Dolly Parton</ARTIST>  
  <COUNTRY>USA</COUNTRY>  
  <COMPANY>RCA</COMPANY>  
  <PRICE>9.90</PRICE>  
  <YEAR>1982</YEAR>  
  </CD> 
 <CD> 
  <TITLE>Still got the blues</TITLE>  
  <ARTIST>Gary Moore</ARTIST>  
  <COUNTRY>UK</COUNTRY>  
  <COMPANY>Virgin records</COMPANY>  
  <PRICE>10.20</PRICE>  
  <YEAR>1990</YEAR>  
  </CD> 
</CATALOG> 
// 

167.以下组合可以正确显示汉字 
================================ 
xml保存编码 xml页面指定编码 
ANSI  gbk/GBK、gb2312 
Unicode  unicode/Unicode 
UTF-8  UTF-8 
================================ 
  
168.XML操作 
<xml id="xmldata" src="/data/books.xml"> 
<div id="guoguo"></div> 
<script> 
var x=xmldata.recordset //取得数据岛中的记录集 
if(x.absoluteposition < x.recordcount) //如果当前的绝对位置在最后一条记录之前 

 x.movenext();     //向后移动 
 x.moveprevious();    //向前移动 
 x.absoluteposition=1;   //移动到第一条记录 
 x.absoluteposition=x.recordcount;//移动到最后一条记录,注意记录集x.absoluteposition是从1到记录集记录的个 
数的 
 guoguo.innerText=xmldso.recordset("field_name"); //从中取出某条记录 

</script> 
  
169.动态修改CSS的另一种方式 
this.runtimeStyle.cssText = "color:#990000;border:1px solid #cccccc";// 
170.正则表达式 
匹配中文字符的正则表达式: [/u4e00-/u9fa5] 
匹配双字节字符(包括汉字在内):[^/x00-/xff] 
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 
String.prototype.len=function(){return this.replace([^/x00-/xff]/g,"aa").length;} 
匹配空行的正则表达式:/n[/s| ]*/r 
匹配HTML标记的正则表达式:/<(.*)>.*<///1>|<(.*) //>/  
匹配首尾空格的正则表达式:(^/s*)|(/s*$) 
应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下: 
String.prototype.trim = function() 

    return this.replace(/(^/s*)|(/s*$)/g, ""); 

利用正则表达式分解和转换IP地址: 
下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序: 
function IP2V(ip) 

 re=/(/d+)/.(/d+)/.(/d+)/.(/d+)/g  //匹配IP地址的正则表达式 
if(re.test(ip)) 

return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 

else 

 throw new Error("Not a valid IP address!") 


不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下: 
var ip="10.100.20.168" 
ip=ip.split(".") 
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1)) 
匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)* 
匹配网址URL的正则表达式:http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)? 
//利用正则表达式去除字串中重复的字符的算法程序: 
var s="abacabefgeeii" 
var s1=s.replace(/(.).*/1/g,"$1") 
var re=new RegExp("["+s1+"]","g") 
var s2=s.replace(re,"")  
alert(s1+s2)  //结果为:abcefgi 
思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方 
法对于字符顺序有要求的字符串可能不适用。 
//得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1 
s="http://www.9499.net/page1.htm" 
s=s.replace(/(.*//){0,}([^/.]+).*/ig,"$2") 
alert(s) 
/利用正则表达式限制网页表单里的文本框输入内容: 
正则表达式限制只能输入中文:οnkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')"  
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,'') 
)" 
正则表达式限制只能输入全角字符: οnkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')"  
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,'') 
)" 
正则表达式限制只能输入数字:οnkeyup="value=value.replace(/[^/d]/g,'')  
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" 
正则表达式限制只能输入数字和英文:οnkeyup="value=value.replace(/[/W]/g,'')  
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" 
  
171.设置和使用cookie 
<HTML> 
<BODY> 
设置与读取 cookies...<BR> 
写入cookie的值<input type=text name=gg> 
<INPUT TYPE = BUTTON Value = "设置cookie" onClick = "Set()"> 
<INPUT TYPE = BUTTON Value = "读取cookie" onClick = "Get()"><BR> 
<INPUT TYPE = TEXT NAME = Textbox> 
</BODY> 
<SCRIPT LANGUAGE="JavaScript"> 
function Set() 

var Then = new Date()  
Then.setTime(Then.getTime() + 60*1000 ) //60秒 
document.cookie = "Cookie1="+gg.value+";expires="+ Then.toGMTString()  

function Get() 
{  
 var cookieString = new String(document.cookie) 
 var cookieHeader = "Cookie1=" 
 var beginPosition = cookieString.indexOf(cookieHeader) 
 if (beginPosition != -1) 
 { 
  document.all.Textbox.value = cookieString.substring(beginPosition  + cookieHeader.length)  
 } 
 else 
  document.all.Textbox.value = "Cookie 未找到!"  

</SCRIPT>  
</HTML>// 
  
172.取月的最后一天 
function getLastDay(year,month) 

 //取年 
 var new_year = year; 
 //取到下一个月的第一天,注意这里传入的month是从1~12  
 var new_month = month++; 
 //如果当前是12月,则转至下一年 
 if(month>12) 
 { 
  new_month -=12; 
  new_year++; 
 } 
 var new_date = new Date(new_year,new_month,1); 
 return (new Date(new_date.getTime()-1000*60*60*24)).getDate(); 
}// 
173.判断当前的焦点是组中的哪一个 
for(var i=0;i<3;i++) 
 if(event.srcElement==bb[i]) 
  break;// 
  
174.实现类 
package com.baosight.view.utils; 
import javax.servlet.jsp.tagext.TagSupport; 
import javax.servlet.http.HttpSession; 
public class Mytag extends TagSupport  

  public int doStartTag() throws javax.servlet.jsp.JspException  
  { 
    boolean canAccess = false; 
    HttpSession session= pageContext.getSession(); 
    if (canAccess)  
    { 
      return EVAL_BODY_INCLUDE; 
    } 
    else  
    { 
      return this.SKIP_BODY; 
    } 
  } 

175.在web.xml中添加定义 
  <taglib> 
    <taglib-uri>guoguo</taglib-uri> 
    <taglib-location>/WEB-INF/abc.tld</taglib-location> 
  </taglib> 

176.标签库中定义abc.tld 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"  
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> 
<taglib> 
 <tlibversion>1.0</tlibversion> 
 <jspversion>1.1</jspversion> 
 <shortname>hr</shortname> 
 <uri>guoguo</uri> 
 <info>Extra 3 Tag Library</info> 
 <tag> 
  <name>mytag</name> 
  <tagclass>com.baosight.view.utils.Mytag</tagclass> 
  <attribute> 
   <name>id2</name> 
   <required>true</required> 
            <rtexprvalue>true</rtexprvalue> 
  </attribute> 
 </tag> 
</taglib> 

177.在使用自定义标签的页面中加入自己定义的标签, 
<%@ taglib uri="guoguo" prefix="guoguo" %> 
//自己定义标签 
  
178.显示带边框的集 
<fieldset style="border:1px gray solid;width:100px"> 
  <legend>查询条件</legend> 
dfdfdf 
</fieldset>// 

179.【文件(F)】菜单中的命令的实现 
1、〖打开〗命令的实现 
[格式]:document.execCommand("open") 
[说明]这跟VB等编程设计中的webbrowser控件中的命令有些相似,大家也可依此琢磨琢磨。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=document.execCommand("open")>打开</a> 
2、〖使用 记事本 编辑〗命令的实现 
[格式]:location.replace("view-source:"+location) 
[说明]打开记事本,在记事本中显示该网页的源代码。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=location.replace("view-source:"+location)>使用 记事本编辑</a> 
3、〖另存为〗命令的实现 
[格式]:document.execCommand("saveAs") 
[说明]将该网页保存到本地盘的其它目录! 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=document.execCommand("saveAs")>另存为</a> 
4、〖打印〗命令的实现 
[格式]:document.execCommand("print") 
[说明]当然,你必须装了打印机! 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=document.execCommand("print")>打印</a> 
5、〖关闭〗命令的实现 
[格式]:window.close();return false 
[说明]将关闭本窗口。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=window.close();return false)>关闭本窗口</a> 
180.【编辑(E)】菜单中的命令的实现 
〖全选〗命令的实现 
[格式]:document.execCommand("selectAll") 
[说明]将选种网页中的全部内容! 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=document.execCommand("selectAll")>全选</a> 
181.【查看(V)】菜单中的命令的实现 
1、〖刷新〗命令的实现 
[格式]:location.reload() 或 history.go(0) 
[说明]浏览器重新打开本页。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=location.reload()>刷新</a> 
或加入: 
<a href="###" οnclick=history.go(0)>刷新</a> 
2、〖源文件〗命令的实现 
[格式]:location.replace("view-source:"+location) 
[说明]查看该网页的源代码。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=location.replace("view-source:"+location)>查看源文件</a> 
3、〖全屏显示〗命令的实现 
[格式]:window.open(document.location, "url", "fullscreen") 
[说明]全屏显示本页。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=window.open(document.location,"url","fullscreen")>全屏显示</a> 
182.【收藏(A)】菜单中的命令的实现 
1、〖添加到收藏夹〗命令的实现 
[格式]:window.external.AddFavorite('url', '“网站名”) 
[说明]将本页添加到收藏夹。 
[举例]在<body></body>之间加入: 
<a href="javascript:window.external.AddFavorite('http://oh.jilinfarm.com', '胡明新的个人主页')">添加到收 
藏夹</a> 
2、〖整理收藏夹〗命令的实现 
[格式]:window.external.showBrowserUI("OrganizeFavorites",null) 
[说明]打开整理收藏夹对话框。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=window.external.showBrowserUI("OrganizeFavorites",null)>整理收藏夹</a> 
183.【工具(T)】菜单中的命令的实现 
〖internet选项〗命令的实现 
[格式]:window.external.showBrowserUI("PrivacySettings",null) 
[说明]打开internet选项对话框。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=window.external.showBrowserUI("PrivacySettings",null)>internet选项</a> 
184.【工具栏】中的命令的实现 
1、〖前进〗命令的实现 
[格式]history.go(1) 或 history.forward() 
[说明]浏览器打开后一个页面。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=history.go(1)>前进</a> 
或加入: 
<a href="###" οnclick=history.forward()>前进</a> 
2、〖后退〗命令的实现 
[格式]:history.go(-1) 或 history.back() 
[说明]浏览器返回上一个已浏览的页面。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=history.go(-1)>后退</a> 
或加入: 
<a href="###" οnclick=history.back()>后退</a> 
3、〖刷新〗命令的实现 
[格式]:document.reload() 或 history.go(0) 
[说明]浏览器重新打开本页。 
[举例]在<body></body>之间加入: 
<a href="###" οnclick=location.reload()>刷新</a> 
或加入: 
<a href="###" οnclick=history.go(0)>刷新</a> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值