在哪里可以找到比心APP冠名价格图片了超凡魔术师的魔术先生APP?

时间: 12:08:02
&&&& 阅读:184
&&&& 评论:
&&&& 收藏:0
标签:1.focus和blur事件不会冒泡。2.keydown和keyup事件是低级键盘事件,无论何时按下或释放按键(甚至是辅助键)都会触发他们。当keydown事件产生可打印字符时,在keydown和keyup事件之间会产生很多keypress事件。keypress是较高级的文本事件,其事件对象指定产生的字符而非按下的键。3.注册事件两种方法:1)出现在Web初期,给事件目标对象或文档元素设置属性。2)这种方式更新并更通用,是将事件处理程序传递给对象或元素的一个方法,如addEventListener()。4.事件处理程序的名字由”on”后跟着事件名组成:onclick,onchange,onload,onmouseover等。注意这些属性名是区分大小写的,所有都是小写,即使事件类型由多个词组成(比如“readychange”)。5.注册和删除事件:addEventListener,removeEventListener,然而IE9之前不支持这两个方法,IE5之后版本定义了类似的attachEvent()和detachEvent()与前面两个函数的不同之处有:&&&&1)因为IE事件模型不支持事件捕获,所以attachEvent()和detachEvent()要求只有两个参数:事件类型和处理程序函数&&&&2)IE方法的第一个参数使用了带“on”前缀的事件处理程序属性名而非没有前缀的事件类型。例如每当addEventListener()传递click时,attachEvent()传递“onclick”&&&&3)attachEvent()允许相同的事件处理程序函数注册多次。当特定的事件类型发生时,注册函数的调用次数和注册次数一样6.在事件处理程序内,this关键字指的是事件目标,当使用addEventListener()注册时,调用的处理程序使用事件目标作为它们的this值。但是,对于attachEvent()注册的处理程序作为函数,它们的this值是全局(window)对象。可用如下代码解决问题:/*在指定的事件目标上注册用于处理指定类型事件的指定处理程序函数确保处理程序一直作为事件目标的方法调用&*/functionaddEvent(target,type,handler){&&& if(target.addEventListener){&&&&&&& target.addEventListener(type,handler,false);&&& }else{&&&&&&&target.attachEvent("on"+type,function(event){&&&&&&&&&&& //把处理程序作为事件目标的方法调用&&&&&&&&&&& //传递事件对象&&&&&&&&&&& return handler.call(target,event);&&&&&&& });&&& }}注意:使用这个方法注册的事件处理程序不能删除,因为传递给attachEvent()的包装函数没有保存下来传递给detachEvent()。7.事件处理程序的作用域:它们在其定义时的作用域而非调用时的作用域中执行,并且它们能存取那个作用域中的任何一个本地变量。但是通过HTML属性来注册事件处理程序是一个例外,它们被转换为能存取全局变量的顶级函数而非任何本地变量。但是由于历史原因,它们运行在一个修改后的作用域链中,通过HTML属性定义的事件处理程序能好像本地变量一样使用目标对象,容器&form&对象(如果有)和Document对象的属性。HTML属性最不自然的地方包括冗长的代码串和修改会的作用域链允许有用的快捷方式,可以使用tagName替代this.tagName,使用getElementById()替代document.getElementById()。并且,对于&form&中的文档元素,能通过ID引用任何其他的表单元素,例如zicode替代this.form.zipcode。另一方面,HTML事件处理程序中修改的作用域链是陷阱之源,因为作用域链中每个对象的属性在全局对象中都有相同名字的属性。例如Document对象定义(很少使用)open()方法,因此HTML事件处理程序想调用Window对象的open方法就必须显示地调用window.open而不是open。表单有类似的问题但破坏性更大,因为表达元素的名字和ID在包含的表单元素上定义属性。例如表单包含一个ID是“location”的元素,那么要是表单的所有HTML事件处理程序想引用window的location对象,就必须使用window.location而不能是location。8.事件的调用顺序:1)通过设置对象属性或HTML属性注册的处理程序一直优先调用。2)使用addEventListener()注册的处理程序按照它们的注册顺序调用。3)使用attachEvent()注册的处理程序可能按照任何顺序调用,所以代码不应该依赖于调用顺序。9.文档元素上的load事件会冒泡,但它会在Document对象上停止冒泡而不会传播到WIndow对象。10.事件取消:在支持addEventListener()的浏览器中,也能通过调用事件对象的preventDefault()方法取消事件的默认操作。不过,在IE9之前的IE中,可以通过设置事件对象的returnValue属性为false来达到同样的效果。下面用全部三种技术:function cancelHandler(event){& &&varevent=event||window.&&& /*这里是处理事件的代码*/&&& if(event.preventDefault){&&&&&&& event.preventDefault();//标准技术&&& }else if(event.returnValue){&&&&&&& event.returnValue=&&& }&&&}11.提供一个当文档准备就绪时(图片没有加载完,可以和图片加载并行运行)的函数。当文档为操作准备就绪时,传递给whenReady()的函数将会作为Document对象的方法调用。whenReady监听DOMContentLoaded和readystatechange事件,而是用load事件仅仅是为了兼容那些不支持之前事件的较老浏览器。/*传递函数给whenReady(),当文档解析完毕且为操作准备就绪时,函数将作为文档对象的方法调用DOMContentLoaded,readystatechange或load事件发生时,会触发注册函数一旦文档准备就绪,所有函数将被调用,任何传递给whenReady()的函数都将立即调用*/var whenReady=(function(){&&& var funs=[];//当获得事件时,要运行的函数&&& var ready=&&& //当文档准备就绪时,调用事件处理程序&&& function handler(e){&&&&&&& if(ready){&&&&&&&&&&&//如果已经运行过一次,只需返回&&&&&&& }&&&&&&& //如果发生readystatechange事件&&&& &&&//但其状态不是“complete”的话,那么文档尚未准备好&&&&&&&if(e.type==="readystatechange"&&document.readyState!=="complete"){&&&&&&&&&&&&&&&&&& }&&&&&&& //运行所有注册函数&&&&&&& //注意每次都要计算funcs.length,&&&&&&& //以防这些函数的调用可能会导致更多的函数&&&&&&& for(var i=0;i&funcs.i++){&&&&&&&&&&& funcs[i].call(document);&&&&&&& }&&&&&&& //现在设置ready标识为true,并移除所有函数&&&&&&& ready=&&&&&&& funcs=&&& }&&&&&&& //为接收到的任何事件注册处理程序&&&&&&& if(document.addEventListener){&&&&&&&&&&&document.addEventListener("DOMContentLoaded",handler,false);&&&&&&&&&&&document.addEventListener("readystatechange",handler,false);&&&&&&&&&&&window.addEventListener("load",handler,false);&&&&&&& }else if(document.attachEvent){&&&&&&&&&&&document.attachEvent("onreadystatechange",handler);&&& &&&&&&&&window.attachEvent("onload",handler);&&&&&&& }&&&&&&& return function whenReady(f){&&&&&&&&&&& if(ready){//若准备完毕,只需运行它&&&&&&&&&&&&&&& f.call(document);//否则,加入队列等候&&&&&&&&&&& }&&&&&&& }}());12.除“mouseenter”和“mouseleave”外的所有鼠标事件都能冒泡。13.传递给鼠标事件处理程序的事件对象有clientX和clientY属性,它们指定了鼠标指针相对于包含窗口的坐标。加入窗口的滚动偏移量就可以把鼠标位置转换成文档坐标。14.altKey、ctrKey、metaKey和shiftKey属性指定了当事件发生时是否有各种键盘辅助功能键按下。15.大多数浏览器中,事件对象的keyCode属性指定了输入字符的编码。但是由于历史原因,FIrefox使用的是charCode属性。大多数浏览器只在当产生可打印字符时触发keypress事件。但firefox在产生非打印字符时也触发keypress事件。为了检测这种情况(这样就能忽略非打印字符),可以查找有charCode属性但值为0的事件对象。以下提供一个文本框过滤函数。/*html代码:&inputid="zip" type="text"data-allowed-chars="" data-messageid="zipwarn"&&spanid="zipwarn" style="color:visibility:"&只支持数字&/span&这个模块相当不唐突,它没有定义全局命名空间中的任何符号*/whenReady(function(){&&& varinputelts=document.getElementsByTagName("input");&&& for(var i=0;i&inputelts.i++){&&&&&&& var elt=inputelts[i];&&&&&&& //如果不是文本域,或者没有data-allowed-cahrs属性的元素,则跳过&&&&&&&if(elt.type!="text"||!elt.getAttribute("data-allowed-cahrs")){&&&&&&&&&&&&&&&&&& }&&&&&&& //在input元素上注册事件处理程序函数&&&&&&& //传统的keypress事件处理程序能够在任何地方运行&&&&&&& //textInput(混合大小写)在2010年后Safari和Chrome支持&&&&&&& //textinput(小写)是3级DOM事件规范草案中的版本&&&&&&& if(elt.addEventListener){&&&&&&&&&&& elt.addEventListener("keypress",filter,false);&&&&&&&&&&&elt.addEventListener("textInput",filter,false);&&&&&&&&&&&elt.addEventListener("textinput",filter,false);&&&&&&& }else{&&&&&&&&&&&elt.attachEvent("onkeypress",filter);&&&&&&& }&&& }&&& //这是用于过滤用户输入的keypress、textInput和textinput事件处理程序&&& function filter(event){&&&&&&& //获取事件对象和目标元素对象&&&&&&& var e=event||window.//标准或IE模型&&&&&&& var target=e.target||e.srcE//标准或IE模型&&&&&&& var text=&&&&&&& //获取输入的字符或文本&&&&&&& if(e.type==="textinput"||e.type==="textInput"){&&&&&&&&&&& text=e.&&&&&&& }else{//这是传统的keypress事件&&&&&&&&&&& //对于可打印键的keypress事件,FireFox使用charcode&&&&&&&&&&& var code=e.charCode||e.keyC&&&&&&&&&&& //如果按下的是任何形式的功能键,不要过滤它&&&&&&&&&&& if(code&32||&& //ASCII控制字符&&&&&&&&&&& e.charCode==0||& //功能键(仅指Firefox)&&&&&&&&&&& e.ctrKey||e.altKey){//按下辅助功能键&&&&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&& text=String.fromCharCode(code);&&&&&&& }&&&&&&& //现在需要从input元素中寻找所需信息&&&&&&& var allowed=target.getAttribute("data-allowed-cahrs");&&&&&&& varmessageid=target.getAttribute("data-messageid");&&&&&&& if(messageid){&&&&&&&&&&& varmessageElement=document.getElementById(messageid);&&&&&&& }&&&&&&& //遍历输入文本中的字符&&&&&&& for(var i=0;i&text.i++){&&&&&&&&& &&var c=text.charAt(i);&&&&&&&&&&& if(allowed.indexOf(c)==-1){//不允许的字符&&&&&&&&&&&&&&& if(messageElement){&&&&&&&&&&&&&&&&&&&messageElement.style.visibility="visible";&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& //取消默认行为&&&&&&&&&&&&&&& if(e.preventDefault){&&&&&&&&&&&&&&&&&&& e.preventDefault();&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& if(e.returnValue){&&&&&&&&&&&&&&&&&&& e.returnValue=&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&& }&&&&&&& if(messageElement){&&&&&&&&&&& messageElement.style.visibility="hidden";&&&&&&& }&&& }});keypress事件和textinput事件是在新输入的文本真正插入到聚焦的文档元素前触发,这就是这些事件处理程序能够取消事件和阻止文本插入的原因。浏览器也实现了在文本插入到元素后才触发的input事件类型input。虽然这些事情不能取消,不能指定其事件对象中的最新文本,但它们能以某种形式提供元素文本内容发生改变的通知。HTML5标准化了input事件,除了IE外的所有浏览器都支持它。在IE中使用不标准的propertychange事件监测文本输入元素的value属性改变来实现相似的效果。下面提供一个兼容性的方法:functionforceToUpperCase(element){&&& if(typeof element=="string"){&&&&&&&element=document.getElementById(element);&&& }&&& element.oninput=&&& element.onpropertychange=upcaseOnPropertyC&&& function upcase(event){&&&&&&& this.value=this.value.toUpperCase();&&& }&&& function upcaseOnPropertyChange(event){//兼容IE&&&&&&& var e=event||window.&&&&&&&if(e.propertyName==="value"){//value属性发生变化&&&&&&&&&&& //移除onpropertychange处理程序,避免循环调用&&&&&&&&&&& this.onpropertychange=&&&&&&&&&&& //把值变成大写&&&&&&&&&&&this.value=this.value.toUpperCase();&&&&&&&&&&& //然后恢复propertychange处理程序&&&&&&&&&&&this.propertychange=upcaseOnPropertyC&&&&&&& }&&& }}本文出自 “” 博客,请务必保留此出处标签:
&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!JS事件大全
我的图书馆
JS事件大全
事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 event.returnVal 鼠标位置 event.x event.y 窗体活动元素 document.activeElement 绑定事件 document.captureEvents(Event.KEYDOWN); 访问窗体元素 document.all("txt").focus(); document.all("txt").select(); 窗体命令 document.execCommand 窗体COOKIE document.cookie 菜单事件 document.oncontextmenu 创建元素 document.createElement("SPAN"); 根据鼠标获得元素: document.elementFromPoint(event.x,event.y).tagName=="TD document.elementFromPoint(event.x,event.y).appendChild(ms) 窗体图片 document.images[索引] 窗体事件绑定 document.onmousedown= 元素 document.窗体.elements[索引] 对象绑定事件 document.all.xxx.detachEvent('onclick',a); 插件数目 navigator.plugins 取变量类型 typeof($js_libpath)&==&"undefined" 下拉框 下拉框.options[索引] 下拉框.options.length 查找对象 document.getElementsByName("r1"); document.getElementById(id); 定时 timer=setInterval('scrollwindow()',delay); clearInterval(timer); UNCODE编码 escape()&,unescape 父对象 obj.parentElement(dhtml) obj.parentNode(dom) 交换表的行 TableID.moveRow(2,1) 替换CSS document.all.csss.href&=&"a.css"; 并排显示 display:inline 隐藏焦点 hidefocus=tr 根据宽度换行 style="word-break:break-all" 自动刷新 &meta&HTTP-EQUIV="refresh"&C& 简单邮件 &a&href="[email=?s ject=ccc&body=xxxyyy]mailto:?s ject=ccc&body=xxxyyy[/email]"& 快速转到位置 obj.scrollIntoView(tr) 锚 &a&name="first"& &a&href="#first"&anchors&/a& 网页传递参数 location.search(); 可编辑 obj.contenteditable=tr 执行菜单命令 obj.execCommand 双字节字符 /[^\x00-\xff]/ 汉字 /[\一-\龥]/ 让英文字符串超出表格宽度自动换行 word-wrap:&break-&word-break:&break- 透明背景 &IFRAME&src="1.htm"&width=300&height=180&allowtransparency&&/iframe& 获得style内容 obj.style.cssText HTML标签 document.documentElement.innerHTML 第一个style标签 document.styleSheets[0] style标签里的第一个样式 document.styleSheets[0].rules[0] 防止点击空链接时,页面往往重置到页首端。 &a&href="javascript:function()"&word&/a& 上一网页源 asp: reqst.servervariables("HTTP_REFERER") javascript: document.referrer 释放内存 CollectGarbage(); 禁止右键 document.oncontextmenu&=&function()&{&return&} 禁止保存 &noscript&&iframe&src="*.htm"&&/iframe&&/noscript& 禁止选取&body&Shortcut&Icon"&href="favicon.ico"& favicon.ico&名字最好不变16*16的16色,放虚拟目录根目录下 收藏栏图标 &link&rel="Bookmark"&href="favicon.ico"& 查看源码 &input&type=button&val=查看网页源代码&& 关闭输入法 &input&style="ime-mode:disabled"& 自动全选 &input&type=text&name=text1&val="123"&& ENTER键可以让光标移到下一个输入框 &input&& 文本框的默认值 &input&type=text&val="123"&& title换行 obj.title&=&"123&sdfs&" 获得时间所代表的微秒 var&n1&=&new&Date("".replace(/-/g,&"\/")).getTime() 窗口是否关闭 win.closed checkbox扁平 &input&type=checkbox&style="position:&&clip:rect(5px&15px&15px&5px)"&&br&
获取选中内容 document.selection.createRange().duplicate().text 自动完成功能 &input&type=text&autocomplete=on&打开该功能 &input&type=text&autocomplete=off&关闭该功能 窗口最大化 &body&& 无关闭按钮IE&window.open("aa.htm",&"meizz",&"fullscreen=7"); 统一编码/解码&alert(decodeURIComponent(encodeURIComponent("http://你好.com?as=&hehe"))) encodeURIComponent对":"、"/"、";"&和&"?"也编码 高级应用(一) //各种尺寸 s&+=&"\r\n网页可见区域宽:"+&document.body.clientW s&+=&"\r\n网页可见区域高:"+&document.body.clientH s&+=&"\r\n网页可见区域高:"+&document.body.offsetWeight&+"&(包括边线的宽)"; s&+=&"\r\n网页可见区域高:"+&document.body.offsetHeight&+"&(包括边线的宽)"; s&+=&"\r\n网页正文全文宽:"+&document.body.scrollW s&+=&"\r\n网页正文全文高:"+&document.body.scrollH s&+=&"\r\n网页被卷去的高:"+&document.body.scrollT s&+=&"\r\n网页被卷去的左:"+&document.body.scrollL s&+=&"\r\n网页正文部分上:"+&window.screenT s&+=&"\r\n网页正文部分左:"+&window.screenL s&+=&"\r\n屏幕分辨率的高:"+&window.screen. s&+=&"\r\n屏幕分辨率的宽:"+&window.screen. s&+=&"\r\n屏幕可用工作区高度:"+&window.screen.availH s&+=&"\r\n屏幕可用工作区宽度:"+&window.screen.availW //过滤数字 &input&type=text&onkeypress="return&event.keyCode&=48&&event.keyCode&=57||(this.val.indexOf('.')&0?event.keyCode==46:false)"&onpaste="return&!clipboardData.getData('text').match(/\D/)"&ondragenter="return&false"&
//特殊用途 &input&type=button&val=导入收藏夹&onclick="window.external.ImportExportFavorites(tr,'http://localhost');"& &input&type=button&val=导出收藏夹&onclick="window.external.ImportExportFavorites(false,'http://localhost');"& &input&type=button&val=整理收藏夹&onclick="window.external.ShowBrowserUI('OrganizeFavorites',&null)"& &input&type=button&val=语言设置&onclick="window.external.ShowBrowserUI('Lang geDialog',&null)"& &input&type=button&
val=加入收藏夹&
onclick="window.external.AddFavorite('/',&'google')"&
&input&type=button&val=加入到频道&onclick="window.external.addChannel('/')"& &input&type=button&val=加入到频道&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"& //正则匹配 匹配中文字符的正则表达式:&[\一-\龥] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s|&]*\r 匹配HTML标记的正则表达式:/&(.*)&.*&\/\1&|&(.*)&\/&/ 匹配首尾空格的正则表达式:(^\s*)|(\s*$)(像vbscript那样的trim函数) 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w-&./?%&=]*)? 以下是例子: 利用正则表达式限制网页表单里的文本框输入内容: 用
正则表达式限制只能输入中文:onkeyup="val=val.replace(/[^\一-\龥]/g,'')"&
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^一-\龥]/g,''))" 1.用正则表达式限制只能输入全角字符:&onkeyup="val=val
.replace(/[^\?-\?]/g,'')"&onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\?-\?]/g,''))"
2.用正则表达式限制只能输入数字:onkeyup="val=val.replace(/[^\d]/g,'')&
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
3.用正则表达式限制只能输入数字和英文:onkeyup="val=val.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& //无提示关闭 function&Close() { var& =navigator.userAgent var&ie=navigator.appName=="Microsoft&Internet&Explorer"?tr:false if(ie) { var&IEversion=parseFloat( .s string( .indexOf("MSIE&")+5, .indexOf(";", .indexOf("MSIE&")))) if(IEversion&&5.5) { var&str&=&'&object&id=noTipClose&classid="clsid:ADB880A6-D8FF-11CF-3B7A11"&' str&+=&'&param&name="Command"&val="Close"&&/object&'; document.body.insertAdjacentHTML("beforeEnd",&str); document.all.noTipClose.Click(); } else { window.opener&= window.close(); } } else { window.close() } } //取得控件得绝对位置(1) &script&lang ge="javascript"& function&getoffset(e) { var&t=e.offsetT var&l=e.offsetL while(e=e.offsetParent) { t+=e.offsetT l+=e.offsetL } var&rec&=&new&Array(1); rec[0]&=&t; rec[1]&=&l; return&rec } &/script& //获得控件的绝对位置(2) oRect&=&obj.getBoundingClientRect(); oRect.left oRect. //最小化,最大化,关闭 &object&id=min&classid="clsid:ADB880A6-D8FF-11CF-3B7A11"& &param&name="Command"&val="Minimize"&&/object& &object&id=max&classid="clsid:ADB880A6-D8FF-11CF-3B7A11"& &param&name="Command"&val="Maximize"&&/object& &OBJECT&id=close&classid="clsid:adb880a6-d8ff-11cf-3b7a11"& &PARAM&NAME="Command"&val="Close"&&/OBJECT& &input&type=button&val=最小化&onclick=min.Click()& &input&type=button&val=最大化&onclick=max.Click()& &input&type=button&val=关闭&onclick=close.Click()& //光标停在文字最后 &script&lang ge="javascript"& function&cc() { var&e&=&event.srcE var&r&=e.createTextRange(); r.moveStart('character',e.val.length); r.collapse(tr); r.select(); } &/script& &input&type=text&name=text1&val="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 //网页是否被检索&&meta&name="ROBOTS"&content="属性值"&   其中属性值有以下一些:   属性值为"all":&文件将被检索,且页上链接可被查询;   属性值为"none":&文件不被检索,而且不查询页上的链接;   属性值为"index":&文件将被检索;   属性值为"follow":&查询页上的链接;   属性值为"noindex":&文件不检索,但可被查询链接;   属性值为"nofollow": //打印分页&&p&style="page-break-after:always"&page1&/p& &p&style="page-break-after:always"&page2&/p& //设置打印 &object&id="factory"&style="display:none"&viewastext classid="clsid:eb-11d2-b92f-008048fdd814" codebase="/scriptx/ScriptX.cab#Version=5,60,0,360" &&/object& &input&type=button&val=页面设置&onclick="factory.printing.PageSetup()"& &input&type=button&val=打印预览&onclick="factory.printing.Preview()"& &script&lang ge=javascript& function&window.onload() { //&--&advanced&features factory.printing.SetMarginMeasure(2)&//&measure&margins&in&inches factory.printing.SetPageRange(false,&1,&3)&//&need&pages&from&1&to&3 factory.printing.printer&=&"HP&DeskJet&870C" factory.printing.copies&=&2 factory.printing.collate&=&tr factory.printing.paperSize&=&"A4" factory.printing.paperSource&=&"Man l&feed" //&--&basic&features factory.printing.header&=&"居左显示&b居中显示&b居右显示页码,第&p页/共&P页" factory.printing.footer&=&"(自定义页脚)" factory.printing.portrait&=&false factory.printing.leftMargin&=&0.75 factory.printing.topMargin&=&1.5 factory.printing.rightMargin&=&0.75 factory.printing.bottomMargin&=&1.5 } function&Print(frame)&{ factory.printing.Print(tr,&frame)&//&print&with&prompt } &/script& &input&type=button&val="打印本页"&onclick="factory.printing.Print(false)"& &input&type=button&val="页面设置"&onclick="factory.printing.PageSetup()"& &input&type=button&val="打印预览"&onclick="factory.printing.Preview()"&&br& &a&href="/scriptx/docs/printdoc.htm?static"&target=_blank&具体使用手册,更多信息,点这里&/a& //自带的打印预览 WebBrowser.ExecWB(1,1)&打开 Web.ExecWB(2,1)&关闭现在所有的IE窗口,并打开一个新窗口 Web.ExecWB(4,1)&保存网页 Web.ExecWB(6,1)&打印 Web.ExecWB(7,1)&打印预览 Web.ExecWB(8,1)&打印页面设置 Web.ExecWB(10,1)&查看页面属性 Web.ExecWB(15,1)&好像是撤销,有待确认 Web.ExecWB(17,1)&全选 Web.ExecWB(22,1)&刷新 Web.ExecWB(45,1)&关闭窗体无提示 &style&media=print& .Noprint{display:}&!--用本样式在打印时隐藏非打印项目--& .PageNext{page-break-after:&}&!--控制分页--& &/style& &object&id="WebBrowser"&width=0&height=0&classid="CLSID:A-11D0-A96B-00C04FD705A2"& &/object& &center&class="Noprint"&& &input&type=button&val=打印&onclick=document.all.WebBrowser.ExecWB(6,1)& &input&type=button&val=直接打印&onclick=document.all.WebBrowser.ExecWB(6,6)& &input&type=button&val=页面设置&onclick=document.all.WebBrowser.ExecWB(8,1)& &/p& &p&&&input&type=button&val=打印预览&onclick=document.all.WebBrowser.ExecWB(7,1)& &/center& //去掉打印时的页眉页脚 &script&lang ge="JavaScript"& var&HKEY_Root,HKEY_Path,HKEY_K HKEY_Root="HKEY_CURRENT_USER"; HKEY_Path="\\Software\\Microsoft\\Internet&Explorer\\PageSetup\\"; //设置网页打印的页眉页脚为空 function&PageSetup_Null() { try { var&Wsh=new&ActiveXObject("WScript.Shell"); HKEY_Key="header"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); HKEY_Key="footer"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); } catch(e){} } //设置网页打印的页眉页脚为默认值 function&PageSetup_Default() { try { var&Wsh=new&ActiveXObject("WScript.Shell"); HKEY_Key="header"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P"); HKEY_Key="footer"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d"); } catch(e){} } &/script& &input&type="button"&val="清空页码"&onclick=PageSetup_Null()& &input&type="button"&val="恢复页码"&onclick=PageSetup_Default()& //浏览器验证 function&checkBrowser() { this.ver=navigator.appVersion this.dom=document.getElementById?1:0 this.ie6=(this.ver.indexOf("MSIE&6")&-1&&&&this.dom)?1:0; this.ie5=(this.ver.indexOf("MSIE&5")&-1&&&&this.dom)?1:0; this.ie4=(document.all&&&&!this.dom)?1:0; this.ns5=(this.dom&&&&parseInt(this.ver)&&=&5)&?1:0; this.ns4=(document.layers&&&&!this.dom)?1:0; this.mac=(this.ver.indexOf('Mac')&&&-1)&?1:0; this.ope=(navigator.userAgent.indexOf('Opera')&-1); this.ie=(this.ie6&||&this.ie5&||&this.ie4) this.ns=(this.ns4&||&this.ns5) this.bw=(this.ie6&||&this.ie5&||&this.ie4&||&this.ns5&||&this.ns4&||&this.mac&||&this.ope)
this.nbw=(!this.bw) return& } //计算内容宽和高 &SCRIPT&lang ge="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"&
val="计算内容宽度"&onClick="test(txt)"& &/BODY& //无模式的提示框&function&modelessAlert(Msg) { window.showModelessDialog("javascript:alert(\""+escape(Msg)+"\");window.close();","","status:resizable:help:dialogHeight:height:30dialogHeight:40");
} //屏蔽按键 &html& &head& &meta&http-equiv="Content-Type"&content="text/&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&lang ge="Javascript"&&!-- //屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键 //Author:&meizz(梅花雨)& function&document.oncontextmenu(){event.returnVal=}//屏蔽鼠标右键 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.returnVal= } /*&注:这还不是真正地屏蔽&Alt+&方向键, 因为&Alt+&方向键弹出警告框时,按住&Alt&键不放, 用鼠标点掉警告框,这种屏蔽方法就失效了。以后若 有哪位高手有真正屏蔽&Alt&键的方法,请告知。*/ if&((event.keyCode==8)&||&//屏蔽退格删除键 (event.keyCode==116)||&//屏蔽&F5&刷新键 (event.ctrlKey&&&&event.keyCode==82)){&//Ctrl&+&R event.keyCode=0; event.returnVal= } if&(event.keyCode==122){event.keyCode=0;event.returnVal=}&//屏蔽F11 if&(event.ctrlKey&&&&event.keyCode==78)&event.returnVal=&//屏蔽&Ctrl+n if&(event.shiftKey&&&&event.keyCode==121)event.returnVal=&//屏蔽&shift+F10 if&(window.event.srcElement.tagName&==&"A"&&&&window.event.shiftKey) window.event.returnVal&=&&//屏蔽&shift&加鼠标左键新开一网页 if&((window.event.altKey)&&(window.event.keyCode==115))&//屏蔽Alt+F4 { window.showModelessDialog("about:blank","","dialogWidth:1dialogheight:1px"); return& } } &/script& 屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键 &/body& &/html& //屏蔽打印 &style& @media&print{ *&{display:none} } &/style& //移动的图层,拖动 1.&span&style='position:width:200;height:200;background:red'&onmousedown=MouseDown(this)&onmousemove=MouseMove()&onmouseup=MouseUp()&meizz&/span&
&script&lang ge=javascript& var&O function&MouseDown(obj) { Obj= Obj.setCapture(); Obj.l=event.x-Obj.style.pixelL Obj.t=event.y-Obj.style.pixelT } function&MouseMove() { if(Obj!=null) { Obj.style.left&=&event.x-Obj.l; Obj.style.top&=&event.y-Obj.t; } } function&MouseUp() { if(Obj!=null) { Obj.releaseCapture(); Obj= } } &/script& 2. &div&id="myDiv"&src="logo.gif"&ondrag="doDrag();"&onmouseover="this.style.cursor='hand'"&style="position:left=100;top=100;"&onmousedown="doMouseDown();"&
&a&href="#"&onclick="return&false"&&h1&wlecome&/h1&&/a& &/div& &script&lang ge="JavaScript"&type="text/javascript"& var&orgMouseX; var&orgMouseY; var&orgObjX; var&orgObjY; function&doDrag() { var&myObject=document.all.myD var&x=event.clientX; var&y=event.clientY; myObject.style.left=x-(orgMouseX-orgObjX); myObject.style.top=y-(orgMouseY-orgObjY); } function&doMouseDown() { orgMouseX=event.clientX; orgMouseY=event.clientY; orgObjX=parseInt(document.all.myDiv.style.left); orgObjY=parseInt(document.all.myDiv.style.top); } &/script& //文档状态改变 &iframe&src="a.html"&id="f"&name="f"&scrolling="no"&frameborder=0&marginwidth=0&marginheight=0&&/iframe&
&script& var&doc=window.frames["f"]. function&s(){ if&(doc.readyState=="complete"){ document.all.f.style.height=doc.body.scrollHeight document.all.f.style.width=doc.body.scrollWidth } } doc.onreadystatechange=s &/script& //刷新后不变的文本框&&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,&sVal) { document.cookie&=&sName&+&"="&+&escape(sVal)&+&";&"; } function&GetCookie(sName) { var&aCookie&=&document.cookie.split(";&"); for&(var&i=0;&i&&&aCookie.&i++) { var&aCrumb&=&aCookie.split("="); if&(sName&==&aCrumb[0]) return&unescape(aCrumb[1]); } } function&DelCookie(sName) { document.cookie&=&sName&+&"="&+&escape(sVal)&+&";&expires=Fri,&31&Dec&:59&GMT;";
} //setTimeout增加参数 &script& var&_st&=&window.setT 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.constr tor.prototype._caller&=& var&argus&=&new&Array(); for&(var&i=0;i&argu.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.i++) argu[i-1]&=& 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= xmlHTTP= } 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.responseT if(result) { if(xmlhttp.Status==200) { return(tr); } else { return(false); } } else { return(false); } } } //POST代替FORM &SCRIPT&lang ge="VBScript"& Function&URLEncoding(vstrIn) strReturn&=&"" For&i&=&1&To&Len(vstrIn) ThisChr&=&Mid(vStrIn,i,1) If&Abs(Asc(ThisChr))&&&&HFF&Then strReturn&=&strReturn&&&ThisChr Else innerCode&=&Asc(ThisChr) If&innerCode&&&0&Then innerCode&=&innerCode&+&&H10000 End&If Hight8&=&(innerCode&And&&HFF00)\&&HFF Low8&=&innerCode&And&&HFF strReturn&=&strReturn&&&"%"&&&Hex(Hight8)&&&"%"&&&Hex(Low8) End&If Next URLEncoding&=&strReturn End&Function Function&bytes2BSTR(vIn) strReturn&=&"" For&i&=&1&To&LenB(vIn) ThisCharCode&=&AscB(MidB(vIn,i,1)) If&ThisCharCode&&&&H80&Then strReturn&=&strReturn&&&Chr(ThisCharCode) Else NextCharCode&=&AscB(MidB(vIn,i+1,1)) strReturn&=&strReturn&&&Chr(CLng(ThisCharCode)&*&&H100&+&CInt(NextCharCode)) i&=&i&+&1 End&If Next bytes2BSTR&=&strReturn End&Function dim&strA,oReq strA&=&URLEncoding("s mit1=S mit&text1=中文") set&oReq&=&CreateObject("MSXML2.XMLHTTP") oReq.open&"POST","http://ServerName/VDir/TstResult.asp",false oReq.setReqstHeader&"Content-Length",Len(strA) oReq.setReqstHeader&"CONTENT-TYPE","application/x-www-form-urlencoded" oReq.send&strA msgbox&bytes2BSTR(oReq.responseBody) &/SCRIPT& //readyState是xmlhttp返回数据的进度,0=载入中,1=未初始化,2=已载入,3=运行中,4=完成 高级应用(二) //组件是否安装 isComponentInstalled("{6B053A4B-A7EC-4D3D-A1A5739}",&"componentID")) //检查网页是否存在 function&CheckURL(URL) { var&xmlhttp&=&new&ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.Open("GET",URL,&false); try { xmlhttp.Send(); var&result&=&xmlhttp. } catch(e)&{return(false);&} if(result==200) { return&tr; } xmlhttp&=& return& } //连接数据库 &script&lang ge="javascript"& //用&JavaScript&写服务器端连接数据库的代码示例 var&conn&=&new&ActiveXObject("ADODB.Connection"); conn.Open("Provider=SQLOLEDB.1;&Data&Source=&User&ID=&" +"Password=;&Initial&Catalog=p s"); var&rs&=&new&ActiveXObject("ADODB.Recordset"); var&sql="select&*&from&authors"; rs.open(sql,&conn); shtml&=&"&table&width='100%'&border=1&"; shtml&+="&tr&bgcolor='#f4f4f4'&&td&au_id&/td&&td&au_lname&/td&&td&au_fname&/td&&td&phone&/td&&td&address&/td&&td&&city&/td&&td&state&/td&&td&zip&/td&&/tr&";
while(!rs.EOF) { shtml&+=&"&tr&&td&"&+&rs("au_id")&+&"&/td&&td&"&+&rs("au_lname")&+&"&/td&&td&"&+&rs("au_fname")&+&"&/td&&td&"&+&rs("phone")&+&"&/td&&td&"&+&rs("address")&+&"&/td&&td&"&+&rs("city")&+&"&/td&&td&"&+&rs("state")&+&"&/td&&td&"&+&rs("zip")&+&"&/td&&/tr&";
rs.moveN } shtml&+=&"&/table&"; document.write(shtml); rs.close(); rs&=& conn.close(); conn&=& &/script& //使用数据岛 &html& &body& srno:&input&type=text&datasrc=#xmldate&DataFLD=srno&size="76"&&BR& times:&input&type=text&datasrc=#xmldate&DataFLD=times&size="76"&&BR& &input&id="first"&TYPE=button&val="&& 第一条记录"&onclick="xmldate.recordset.moveFirst()"& &input&id="prev"&TYPE=button&val="&上一条记录"&onclick="xmldate.recordset.movePrevious()"& &input&id="next"&TYPE=button&val="下一条记录&"&onclick="xmldate.recordset.moveNext()"& &input&id="last"&TYPE=button&val="最后一条记录&&"&onclick="xmldate.recordset.moveLast()"& &input&id="Add"&TYPE=button&val="添加新记录"&onclick="xmldate.recordset.addNew()"& &XML&ID="xmldate"& &infolist& &info&&&srno&&/srno&&times&null&/times&&/info& &info&&&srno&&/srno&&times&日2点22分0&秒&/times&&/info& &/infolist& &/XML& &/body& &/html& //获得参数 &body& &a&href="javascript:location.href=location.href&+&'?a=1&b=2'"&search&/a& &script&lang ge="JavaScript"& &!-- var&a&=&location.search.s str(1); if(a.length&0) { var&re&=&/([^&]*?)\=([^&]*)/g var&s&=&a.match(re); for(var&i=&0;i&s.i++) { alert(s); alert(s.split("=")[1]); } } //--& &/script& &/body& //可编辑SELECT &input&type=text&name=re_name&style="width:100height:21font-size:10"&&span&style="width:18border:0px&solid&"&&select&name="r00"&style="margin-left:-100width:118&background-color:#FFEEEE;"&onChange="document.all.re_name.val=this.val;"&
&option&val="1"&&option& &option&val="2"&222222&/option& &option&val="3"&333333&/option& &/select& &/span& //设置光标位置 function&getCaret(textbox) { var&control&=&document.activeE textbox.focus(); var&rang&=&document.selection.createRange(); rang.setEndPoint("StartToStart",textbox.createTextRange()) control.focus(); return&rang.text. } function&setCaret(textbox,pos) { try { var&r&=textbox.createTextRange(); r.moveStart('character',pos); r.collapse(tr); r.select(); } catch(e) {} } function&selectLength(textbox,start,len) { try { var&r&=textbox.createTextRange(); r.moveEnd('character',len-(textbox.val.length-start)); r.moveStart('character',start); r.select(); } catch(e) {//alert(e.description)} } function&insertAtCaret(textbox,text) { textbox.focus(); document.selection.createRange().text&=& } //页内查找 function&findInPage(str) { var&txt,&i,&found,n&=&0; if&(str&==&"") { return& } txt&=&document.body.createTextRange(); for&(i&=&0;&i&&=&n&&&&(found&=&txt.findText(str))&!=&&i++)
{ txt.moveStart("character",&1); txt.moveEnd("textedit"); } if&(found) { txt.moveStart("character",&-1); txt.findText(str); txt.select(); txt.scrollIntoView(); n++; } else { if&(n&&&0) { n&=&0; findInPage(str); } else { alert(str&+&"...&您要找的文字不存在。\n&\n请试着输入页面中的关键字再次查找!"); } } return& } //操作EXECL &script&lang ge="javascript"& function&jStartExcel()&{ var&xls&=&new&ActiveXObject&(&"Excel.Application"&); xls.visible&=&tr; var&newBook&=&xls.Workbooks.A newBook.Worksheets.A newBook.Worksheets(1).A xls.ActiveWorkBook.ActiveSheet.PageSetup.Orientation&=&2; xls.ActiveWorkBook.ActiveSheet.PageSetup.PaperSize&=&5; newBook.Worksheets(1).Columns("A").columnwidth=50; newBook.Worksheets(1).Columns("A").WrapText&=&tr; newBook.Worksheets(1).Columns("B").columnwidth=50; newBook.Worksheets(1).Columns("B").WrapText&=&tr; newBook.Worksheets(1).Range("A1:B1000").NumberFormat&=&"0"; newBook.Worksheets(1).Range("A1:B1000").HorizontalAlignment&=&-4131; newBook.Worksheets(1).Cells(1,1).Interior.ColorIndex="15"; newBook.Worksheets(1).Cells(1,1).val="First&Column,&First&Cell"; newBook.Worksheets(1).Cells(2,1).val="First&Column,&Second&Cell"; newBook.Worksheets(1).Cells(1,2).val="Second&Column,&First&Cell"; newBook.Worksheets(1).Cells(2,2).val="Second&Column,&Second&Cell"; newBook.Worksheets(1).Name="My&First&WorkSheet"; } &/script& //自定义提示条 &a&href="#"&title="这是提示"&tip&/a& &script&Lang ge="JavaScript"& //***********默认设置定义.********************* tPopWait=50;//停留tWait豪秒后显示提示。 tPopShow=5000;//显示tShow豪秒后关闭提示 showPopStep=20; popOpacity=99; //***************内部变量定义***************** sPop= curShow= tFadeOut= tFadeIn= tFadeWaiting= document.write("&style&type='text/css'id='defaultPopStyle'&"); document.write(".cPopText&{&background-color:&#F8F8F5;color:#000000;&border:&1px&#000000&font-color:&font-size:&12&padding-right:&4&padding-left:&4&height:&20&padding-top:&2&padding-bottom:&2&filter:&Alpha(Opacity=0)}");
document.write("&/style&"); document.write("&div&id='dypopLayer'&style='position:z-index:1000;'&class='cPopText'&&/div&");
function&showPopupText(){ var&o=event.srcE MouseX=event.x; MouseY=event.y; if(o.alt!=null&&&&o.alt!=""){o.dypop=o.o.alt=""}; if(o.title!=null&&&&o.title!=""){o.dypop=o.o.title=""}; if(o.dypop!=sPop)&{ sPop=o. clearTimeout(curShow); clearTimeout(tFadeOut); clearTimeout(tFadeIn); clearTimeout(tFadeWaiting); if(sPop==null&||&sPop=="")&{ dypopLayer.innerHTML=""; dypopLayer.style.filter="Alpha()"; dypopLayer.filters.Alpha.opacity=0; } else&{ if(o.dyclass!=null)&popStyle=o.dyclass else&popStyle="cPopText"; curShow=setTimeout("showIt()",tPopWait); } } } function&showIt(){ dypopLayer.className=popS dypopLayer.innerHTML=sP popWidth=dypopLayer.clientW popHeight=dypopLayer.clientH if(MouseX+12+popWidth&document.body.clientWidth)&popLeftAdjust=-popWidth-24 else&popLeftAdjust=0; if(MouseY+12+popHeight&document.body.clientHeight)&popTopAdjust=-popHeight-24 else&popTopAdjust=0; dypopLayer.style.left=MouseX+12+document.body.scrollLeft+popLeftA dypopLayer.style.top=MouseY+12+document.body.scrollTop+popTopA dypopLayer.style.filter="Alpha(Opacity=0)"; fadeOut(); } function&fadeOut(){ if(dypopLayer.filters.Alpha.opacity&popOpacity)&{ dypopLayer.filters.Alpha.opacity+=showPopS tFadeOut=setTimeout("fadeOut()",1); } else&{ dypopLayer.filters.Alpha.opacity=popO tFadeWaiting=setTimeout("fadeIn()",tPopShow); } } function&fadeIn(){ if(dypopLayer.filters.Alpha.opacity&0)&{ dypopLayer.filters.Alpha.opacity-=1; tFadeIn=setTimeout("fadeIn()",1); } } document.onmouseover=showPopupT &/script& //插入文字 document.onclick&=function(){ var&oSource&=&window.event.srcE if(oSource.tagName!="DIV") return& var&sel&=&document. if&(sel!=null)&{ var&rng&=&sel.createRange(); if&(rng!=null) rng.pasteHTML("&font&color=red&插入文字&/font&"); } } //netscapte下操作xml doc&=&new&ActiveXObject("Msxml2.DOMDocument"); doc&=&new&ActiveXObject("Microsoft.XMLDOM") -&& doc&=&(new&DOMParser()).parseFromString(sXML,'text/xml') //禁止FSO 1.注销组件 regsvr32&/u&scrrun.dll 2.修改PROGID HKEY_CLASSES_ROOT\Scripting.FileSystemObject Scripting.FileSystemObject 3.对于使用object的用户,修改HKEY_CLASSES_ROOT\Scripting. //省略号 &DIV&STYLE="width:&120&height:&50&border:&1px&solid&bl; overflow:&&text-overflow:ellipsis"& &NOBR&就是比如有一行文字,很长,表格内一行显示不下.&/NOBR& &/DIV& //判断键值 &html& &meta&http-equiv="Content-Type"&content="text/&charset=gb2312"& &head& &script&lang ge="javascript"& var&ie&=navigator.appName=="Microsoft&Internet&Explorer"?tr: function&keyDown(e) { if(!ie) { var&nkey=e. var&iekey='现在是ns浏览器'; var&realkey=String.fromCharCode(e.which); } if(ie) { var&iekey=event.keyC var&nkey='现在是ie浏览器'; var&realkey=String.fromCharCode(event.keyCode); if(event.keyCode==32){realkey='\'&空格\''} if(event.keyCode==13){realkey='\'&回车\''} if(event.keyCode==27){realkey='\'&Esc\''} if(event.keyCode==16){realkey='\'&Shift\''} if(event.keyCode==17){realkey='\'&Ctrl\''} if(event.keyCode==18){realkey='\'&Alt\''} } alert('ns浏览器中键值:'+nkey+'\n'+'ie浏览器中键值:'+iekey+'\n'+'实际键为'+realkey); } document.onkeydown&=&keyD &/script& &/head& &body& //Javascript&Document. &hr& &center& &h3&请按任意一个键。。。。&/h3& &/center& &/body& &/html& //检测media&play版本 &IE:clientCaps&ID="oClientCaps"&style="{behavior:url(#default#clientcaps)}"&/& &SCRIPT& var&flash=""; WMPVersion=&oClientCaps.getComponentVersion("{22D6F312-B0F6-11D0-94AB-E95}","ComponentID"); if&(WMPVersion&!=&"")&{ flash&=&""; var&version&=&WMPVersion.split(","); var&i; for&(i&=&0;&i&&&version.&i++)&{ if&(i&!=&0) flash&+=&"."; flash&+=& } document.write("您的Windows&Media&Player&版本是:"+flash+"&p&"); } &/SCRIPT& //图象按比例 &script&lang ge="JavaScript"& &!-- //图片按比例缩放 var&flag= function&DrawImage(ImgD){ var&image=new&Image(); var&iwidth&=&80;&//定义允许图片宽度 var&iheight&=&80;&//定义允许图片高度 image.src=ImgD. if(image.width&0&&&&image.height&0){ flag=tr; if(image.width/image.height&=&iwidth/iheight){ if(image.width&iwidth){ ImgD.width= ImgD.height=(image.height*iwidth)/image. }else{ ImgD.width=image. ImgD.height=image. } ImgD.alt=image.width+"×"+image. } else{ if(image.height&iheight){ ImgD.height= ImgD.width=(image.width*iheight)/image. }else{ ImgD.width=image. ImgD.height=image. } ImgD.alt=image.width+"×"+image. } } } //--& &/script& &img&src=".."&onload&=&"DrawImage(this)"& //细线SELECT &span&style="border:1px&solid�&position:&overflow:"&& &select&style="margin:-2"& &option&1111&/option& &option&11&/option& &option&&/option& &/select&&/span& //Import function&Import()&{ for(&var&i=0;&i&arguments.&i++&)&{ var&file&=& if&(&file.match(/\.js$/i)) document.write('&script&type=\"text/javascript\"&src=\"'&+&file&+&'\"&&/sc'&+&'ript&');
else document.write('&style&type=\"text/css\"&@import&\"'&+&file&+&'\"&;&/style&'); } }; //js枚举 function&getComputerName() { var&objWMIService&=&GetObject("Winmgmts:root\cimv2"); for(e&=&new&Enumerator(objWMIService)&;&!e.atEnd()&;&e.moveNext()) { var&getComputer&=&e.item(); return&getComputer.N } } //条件编译 &script&lang ge=javascript& /*@cc_on&@*/ /*@if&(@_win32&&&&@_jscript_version&5) function&window.confirm(str) { execScript("n&=&msgbox('"+&str&+"',&257)",&"vbscript"); return(n&==&1); } @end&@*/ &/script& //取得innerText &SCRIPT&LANG GE="JavaScript"& &!-- var&xmlDoc&=&new&ActiveXObject("Msxml2.DOMDocument.4.0"); var&currN xmlDoc.async&=& xmlDoc.async&=& xmlDoc.loadXML("&TABLENAME&&你好你阿三&大法&司法等四&&/TABLENAME&"); currNode&=&xmlDoc.documentE var&s&=&currNode. var&r&=&/\&([^\&\s]*?)[^\&]*?\&([^\&]*?)\&\/\1\&/ var&b&=&s.replace(r,"$2"); alert(b); //--& &/SCRIPT& //mergeAttributes&复制所有读/写标签属性到指定元素。 &SCRIPT& function&fnMerge(){ oSource.children[1].mergeAttributes(oSource.children[0]); } &/SCRIPT& &SPAN&ID=oSource& &DIV ID="oDiv" ATTRIBUTE1="tr" ATTRIBUTE2="tr" onclick="alert('click');" onmouseover="this.style.color='#0000FF';" onmouseout="this.style.color='#000000';" & This&is&a&sample&&B&DIV&/B&&element. &/DIV& &DIV&ID="oDiv2"& This&is&another&sample&&B&DIV&/B&&element. &/DIV& &/SPAN& &INPUT TYPE="button" VAL="Merge&Attributes" onclick="fnMerge()" & JavaScript[对象.属性]集锦 SCRIPT&标记 用于包含javascript代码. 语法 属性 LANG GE&定义脚本语言 SRC&定义一个URL用以指定以.JS结尾的文件 windows对象 每个HTML文档的顶层对象. 属性 frames[]&子桢数组.每个子桢数组按源文档中定义的顺序存放. feames.length&子桢个数. self&当前窗口. parent&父窗口(当前窗口是中一个子窗口). top&顶层窗口(是所有可见窗口的父窗口). status&浏览器状态窗口上的消息. defaultStatus&当status无效时,出现在浏览器状态窗口上的缺省消息. name&内部名,为由window.open()方法打开的窗口定义的名字. 方法 alert("message")&显示含有给定消息的"javascript&Alert"对话框. confirm("message")&显示含有给定消息的"Confirm"对话框(有一个OK按钮和一个Cancel按钮).如果用户单击OK返回tr,否则返回false. prompt("message")&显示一个"prompt"对话框,要求用户根据显示消息给予相应输入. open("URL","name")&打开一个新窗口,给予一个指定的名字. close()&关闭当前窗口. frame对象 它是整个浏览器窗口的子窗口,除了status,defaultStatus,name属性外,它拥有window对象的全部属性. location对象 含有当前URL的信息. 属性 href&整个URL字符串. protocol&含有URL第一部分的字符串,如http: host&包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/ hostname&包含URL中主机名的字符串.如http://www.cenpok.net port&包含URL中可能存在的端口号字符串. pathname&URL中"/"以后的部分.如~list/index.htm hash&"#"号(CGI参数)之后的字符串. search&"?"号(CGI参数)之后的字符串. document对象 含有当前文档信息的对象. 属性 title&当前文档标题,如果未定义,则包含"Untitled". location&文档的全URL. lastModified&含有文档最后修改日期. referrer&调用者URL,即用户是从哪个URL链接到当前页面的. bgColor&背景色(#xxxxxx) fgColor&前景文本颜色. linkColor&超链接颜色. vlinkColor&访问过的超链颜色. alinkColor&激活链颜色(鼠标按住未放时). forms[]&文档中form对象的数组,按定义次序存储. forms.length&文档中的form对象数目. links[]&与文档中所有HREF链对应的数组对象,按次序定义存储. links.length&文档中HREF链的数目. anchors[]&锚(...)数组,按次序定义存储. anchors.length&文档中锚的数目. 方法 write("string")&将字符串突出给当前窗口.(字符串可以含有HTML标记) writeln("string")&与write()类似,在结尾追加回车符,只在预定格式文本中(...或...)生效. clear()&清当前窗口. close()&关闭当前窗口. form对象 属性 name 中的NAME属性的字符串值. method&中METHOD属性的类值,"0"="GET"&,"1"="POST"&. action&中ACTION属性的字符串值. target&表格数据提交的目标,与标记中相应属性一致. elements[index]&elements属性包含form中的各个元素. length&表格中的元素个数. 方法 s mit()&提交表格. 事件处理器onS mit()&用户单击一个定义好的按钮提交form时运行的代码. text和textarea对象 属性 name&NAME属性的字符串值. val&域内容的字符串值. defaultVal&域内容的初始字符串值. 方法 focus()&设置对象输入焦点. blur()&从对象上移走输入焦点. select()&选定对象的输入区域. 事件处理器 onFocus&当输入焦点进入时执行. onBlur&当域失去焦点时执行. onSelect&当域中有部分文本被选定时执行. onChange&当域失去焦点且域值相对于onFocus执行有所改变时执行. 复选框(checkbox)对象 属性 name&NAME属性的字符串值. val&复选框内容的字符串值.如果设置了,则为"on",否则为"off". checked&复选框内容的布尔值.如果设置了,则为tr,否则为false&. defaultChecked&反映(CHECKED)属性的布尔值(缺省状态). 方法 click()&选定复选框,并使之状态为"on". 事件处理器 onClick&当用户单击Checkbox时执行. 单选按钮(radio)对象 属性 name&NAME属性的字符串值. length&radio对象中单选按钮的个数. val&VAL属性的字符串值. checked&布尔值,按下为tr,否则为false&. defaultChecked&反映CHECKED属性值的布尔值. 方法 click()&选定单选按钮. 事件处理器 onClick&当单选按钮被选定时执行. select对象 属性 length&select对象中对象的个数. name&由NAME=属性定义的select对象的内部名. selectedIndex&select对象中当前被选option的下标. options&该属性对应于在HTML中定义select对象时标记中的内容,它有如下属性: text&标记后的文本串. val&VAL属性的值,当S mit按钮被按下时,该值被提交. defaultSelected&反映标记的SELECTED属性的布尔值. selected&反映option的当前选择状态的布尔值. 事件处理器 onFocus&当输入焦点进入域时执行. onBlur&当域失去输入焦点时执行. onChange&当域失去焦点且如果域的值相对于onFocus执行时有所改变,则执行onChange. Button对象 表格中有三种类型按钮,由标记中的TYPE属性定义: .s mit&(type="S MIT") .reset&(type="RESET") .custom&(type="BUTTON") 所有按钮对象都有如下成分: 属性 val&VAL属性的字符串值. name&NAME属性的字符串值. 方法 click()&选定按钮 事件处理器 onClick&当按钮被单击时执行. s mit和reset对象 属性 val&VAL=属性的内容. name&NAME=属性的内容. 方法 click()&选定按钮 事件处理器 onClick&当按钮被单击时执行. password对象 属性 defaultVal&VAL=属性的内容. name&NAME=属性的内容. val&目前输入password域的数据. 方法 focus()&将焦点带入password域. blur&将焦点从password域移出. select()&选定password域中的当前数据,以备修改. navigator对象 该对象用于确定用户访问时使用的Navigator版本. 属性 appCodeName&相对于用户浏览器的"codename" appName&相对于用户浏览器的实际名字. appVersion&相对于用户浏览器的版本号. userAgent&该属性反映用户浏览器的全部信息. string对象 str 标签:&JavaScript&笔记 评论(0)&引用(0)&浏览(201) 查查看您的虚拟主机上有多少个网站! Posted&on&&10:18&Tsday 地址:/ 最好在你购买主机之前先查一下,如果已经有很多网站了可以另作选择,呵呵。。 刚刚随便查了一个竟然邦了1500多个域名,这样的主机我们能买吗? 标签:&虚拟主机 评论(0)&引用(0)&浏览(219) JavaScript&的&new&(转载) Posted&on&&13:26&Monday 原文:&JavaScript,&We&Hardly&new&Ya&--Douglas&Crockford。 JavaScript是一门基于原型的语言,但它却拥有一个&new&操作符使得其看起来象一门经典的面对对象语言。那样也迷惑了程序员们,导致一些有问题的编程模式。 其实你永远不需要在JavaScript使用&new&Object()。用字面量的形式{}去取代吧。 同理,不要使用&new&Array()&,而代之以字面量[]。JavaScript中的数组并不象Java中的数组那样工作的,使用类似Java的语法只会让你糊涂。 同理不用使用&new&Number,&new&String,&或者&new&Boolean。这些的用法只会产生无用的类型封装对象。就直接使用简单的字面量吧。 不要使用&new&Function&去创建函数对象。用函数表达式更好。比如: frames[0].onfocus&=&new&Function(”document.bgColor=’antiqwhite’”) 更好的写法是: frames[0].onfocus&=&function&()&{document.bgColor&=&'antiqwhite’;}; 第二种形式让脚本编译器更快的看到函数主体,于是其中的语法错误也会更快被检测出来。有时候程序员使用&new&Function&是因为他们没有理解内部函数是如何工作的。 selObj.onchange&=&new&Function(”dynamicOptionListObjects[”+ dol.index+”].change(this)”); 如
果我们让用字符串做函数体,编译器不能看到它们。如果我们用字符串表达式做函数体,我们同样也看不到它们。更好的方式就是不要盲目编程。通过制造一个返回
值为函数的函数调用,我们可以明确的按值传递我们想要绑定的值。这允许我们在循环中初始化一系列&selObj&对象。 selObj.onchange&=&function&(i)&{ return&function&()&{ dynamicOptionListObjects[i].change(this); }; }(dol.index); 直接对一个函数使用new永远不是一个好主意。比如,&new&function&对构造新对象没有提供什么优势。 myObj&=&new&function&()&{ this.type&=&'core’; }; 更好的方式是使用对象字面量,它更轻巧,更快捷。 myObj&=&{ type:&'core’ }; 假如我们需要创建的对象包含的方法需要访问私有变量或者函数,更好的方式仍然是避免使用new.var&foo&=&new&function()&{ function&processMessages(message)&{ alert(”Message:&”&+&message.content); } this.init&=&function()&{ s scribe(”/mytopic”,&this,&processMessages); } }&
通过使用&new&去调用函数,对象会持有一个无意义的原型对象。这只会浪费内存而不会带来任何好处。如果我们不使用new,我们就
不用在对象链维护一个无用的&prototype对象。所以我们可以用()来正确的调用工厂函数。var&foo&=&
function&()&{ function&processMessages(message)&{ alert(”Message:&”&+&message.content); } return&{ init:&function&()&{ s scribe(”/mytopic”,&this,&processMessages); } }; }();所以原则很简单:唯一应该要用到new操作符的地方就是调用一个古老的构造器函数的时候。当调用一个构造器函数的时候,是强制要求使用new的。有时候可以来new一下,&有的时候还是不要了吧。 标签:&JavaScript 评论(0)&引用(3)&浏览(300) Dojo&Javascript&编程规范 Posted&on&&2:02&Wednesday 转载自:pjhome.net 前言 相当不错的&Javascript&编程风格规范,建议大家采用此规范编写&Javascript。原文链接:&http://dojotoolkit.org/developer/StyleGuide&。 翻译(Translated&by):feelingl ky{,转载请注明出处、作者和翻译者,谢谢配合。 本文地址:&/p/grace/wiki/DojoStyle&。 序 Any&violation&to&this&guide&is&allowed&if&it&enhances&readability. 所有的代码都要变成可供他人容易阅读的。 快读参考 核心&API&请使用下面的风格: 结构&规则&注释 模块&小写&不要使用多重语义(Never&multiple&words) 类&骆驼 公有方法&混合&其他的外部调用也可以使用&lower_case(),这样的风格 公有变量&混合 常量&骆驼&或&大写 下面的虽然不是必要的,但建议使用: 结构&规则 私有方法&混合,例子:_mixedCase 私有变量&混合,例子:_mixedCase 方法(method)参数&混合,例子:_mixedCase,&mixedCase 本地(local)变量&混合,例子:_mixedCase,&mixedCase 命名规范 1.&变量名称&必须为&小写字母。 2.&类的命名使用骆驼命名规则,例如: Account,&EventHandler 3.&常量&必须&在对象(类)或者枚举变量的前部声明。枚举变量的命名必须要有实际的意义,并且其成员&必须&使用骆驼命名规则或使用大写: var&NodeTypes&=&{ Element&:&1, DOCUMENT:&2 } 4.&简写单词&不能使用&大写名称作为变量名: getInnerHtml(),&getXml(),&XmlDocument 5.&方法的命令&必须&为动词或者是动词短语: obj.getSomeVal() 6.&公有类的命名&必须&使用混合名称(mixedCase)命名。 7.&CSS&变量的命名&必须&使用其对应的相同的公共类变量。 8.&私有类的变量属性成员&必须&使用混合名称(mixedCase)命名,并前面下下划线(_)。例如: var&MyClass&=&function(){ var&_b?r; this.doSomething&=&function(){ }; } 9.&变量如果设置为私有,则前面&必须&添加下划线。 this._somePrivateVariable&=& 10.&通用的变量&必须&使用与其名字一致的类型名称: setTopic(topic)&//&变量&topic&为&Topic&类型的变量 11.&所有的变量名&必须&使用英文名称。 12.&变量如有较广的作用域(large&scope),必须使用全局变量;此时可以设计成一个类的成员。相对的如作用域较小或为私有变量则使用简洁的单词命名。 13.&如果变量有其隐含的返回值,则避免使用其相似的方法: getHandler();&//&避免使用&getEventHandler() 14.&公有变量必须清楚的表达其自身的属性,避免字义含糊不清,例如: MouseEventHandler,而非&MseEvtHdlr。 请再次注意这条规定,这样做得的好处是非常明显的。它能明确的表达表达式所定义的含义。例如: dojo.events.mouse.Handler&//&而非&dojo.events.mouse.MouseEventHandler 15.&类/构造函数&可以使用&扩展其基类的名称命名,这样可以正确、迅速的找到其基类的名称: EventHandler UIEventHandler MouseEventHandler 基类可以在明确描述其属性的前提下,缩减其命名: MouseEventHandler&as&opposed&to&MouseUIEventHandler. 特殊命名规范 1.&术语&"get/set"&不要和一个字段相连,除非它被定义为私有变量。 2.&前面加&"is"&的变量名&应该&为布尔值,同理可以为&"has",&"can"&或者&"should"。 3.&术语&"compute"&作为变量名应为已经计算完成的变量。 4.&术语&"find"&作为变量名应为已经查找完成的变量。 5.&术语&"initialize"&或者&"init"&作为变量名应为已经实例化(初始化)完成的类或者其他类型的变量。 6.&UI&(用户界面)控制变量应在名称后加控制类型,例如:&leftComboBox,&TopScrollPane。 7.&复数必须有其公共的名称约定(原文:Plural&form&MUST&be&used&to&name&collections)。 8.&带有&"num"&或者&"count"&开头的变量名约定为数字(对象)。 9.&重复变量建议使用&"i",&"j",&"k"&(依次类推)等名称的变量。 10.&
补充用语必须使用补充词,例如:&get/set,&add/remove,&create
/destroy,&start/stop,&insert/delete,&begin/end,&etc.
11.&能缩写的名称尽量使用缩写。 12.&避免产生歧义的布尔变量名称,例如: isNotError,&isNotFound&为非法 13.&错误类建议在变量名称后加上&"Exception"&或者&"Error"。 14.&方法如果返回一个类,则应该在名称上说明返回什么;如果是一个过程,则应该说明做了什么。 文件 1.&缩进请使用&4&个空白符的制表位。 2.&如果您的编辑器支持&文件标签_(file&tags),请加添如下的一行使我们的代码更容易阅读: //&vim:ts=4:noet:tw=0: 译注:老外用&VIM&编辑器比较多,此条可以选择遵循。 1.&代码折叠必须看起来是完成并且是合乎逻辑的: var&some&=&1 +&2 +&3; var&o&=&someObject.get( 1, 2, 3 ); 注:表达式的缩进与变量声明应为一致的。 注:函数的参数应采用明确的缩进,缩进规则与其他块保持一致。 变量 1.&变量必须在声明初始化以后才能使用,即便是&NULL&类型。 2.&变量不能产生歧义。 3.&相关的变量集应该放在同一代码块中,非相关的变量集不应该放在同一代码块中。 4.&变量应该尽量保持最小的生存周期。 5.&循环/重复变量的规范: 1.&只有循环控制块的话,则必须使用&FOR&循环。 2.&循环变量应该在循环开始前就被初始化;如使用&FOR&循环,则使用&FOR&语句初始化循环变量。 3.&"do&...&while"&语句是被允许的。 4.&"break"&和&"contin"&语句仍然允许使用(但请注意)。 6.&条件表达式 1.&应该尽量避免复杂的条件表达式,如有必要可以使用临时布尔变量。 2.&The&nominal&case&SHOULD&be&put&in&the&"if"&part&and&the&exception&in&the&"else"&part&of&an&"if"&statement.
3.&应避免在条件表达式中加入块。 7.&杂项 1.&尽量避免幻数(Magic&numbers),他们应该使用常量来代替。 2.&浮点变量必须指明小数点后一位(即使是&0)。 3.&浮点变量必须指明实部,即使它们为零(使用&0.&开头)。 布局 块 1.&普通代码段&应该&看起来如下: while&(!isDone){ doSomething(); isDone&=&moreToDo(); } 2.&IF&语句&应该&看起来像这样: if&(someCondition){
}&else&if&(someOtherCondition){
} 3.&FOR&语句&应该&看起来像这样: for&(&&update){
} 4.&WHILE&语句&应该&看起来像这样: while&(!isDone)&{ doSomething(); isDone&=&moreToDo(); } 5.&DO&...&WHILE&语句&应该&看起来像这样: do&{
}&while&(condition); 6.&SWITCH&语句&应该&看起来像这样: switch&(condition)&{ case&ABC:
//&fallthrough case&DEF:
} 7.&TRY&...&CATCH&语句&应该&看起来像这样: try&{
}&catch(ex)&{
}&finally&{
} 8.&单行的&IF&-&ELSE,WHILE&或者&FOR&语句也&必须&加入括号,不过他们可以这样写: if&(condition){&&} while&(condition){&&} for&(&&update){&&} 空白 1.&操作符&建议&使用空格隔开(包括三元操作符)。 2.&下面的关键字&避免使用&空白隔开: *&break *&catch *&contin *&do *&else *&finally *&for *&function&(如果为匿名函数,例如:var&foo&=&function(){};&) *&if *&return *&switch *&this *&try *&void *&while *&with 3.&下面的关键字必须使用空白隔开: *&case *&default *&delete *&function&(如果为申明,例如:function&foo(){};&) *&in *&instanceof *&new *&throw *&typeof *&var 4.&逗号(,)&建议&使用空白隔开。 5.&冒号(:)&建议&使用空白隔开。 6.&点(.)&在后部&建议&使用空白隔开。 7.&点(.)&避免&在前部使用空白。 8.&函数调用和方法&避免&使用空白,例如:&doSomething(someParameter);&//&而非&doSomething&(someParameter) 9.&逻辑块&之间使用空行。 10.&声明&建议&对齐使其更容易阅读。 注释 1.&生涩的代码就&没有必要&添加注释了,首先您需要&重写&它们。 2.&所有的注释请使用英文。 3.&从已解决的方案到未开发的功能,注释&必须&与代码相关。 4.&大量的变量申明后&必须&跟随一段注释。 5.&注释需要说明的是代码段的用处,尤其是接下来的代码段。 6.&注释&没有必要&每行都添加。 文档 下面提供了一些基本的函数或者对象的描述方法: *&总结(summary):&简短的表述此函数或者对象实现的目的 *&描述(description):&对于此函数或者类的简短的描述 *&返回(return):&描述此函数返回什么(并不包括返回类型) 基本函数信息 function(){ //&summary:&Soon&we&will&have&enough&treasure&to&rule&all&of&New&Jersey.
//&description:&or&we&could&just&get&a&new&roomate. //&Look,&you&go&find&him.&He&don't&yell&at&you. //&All&I&ever&try&to&do&is&make&him&smile&and&sing&around //&him&and&dance&around&him&and&he&just&lays&into&me. //&He&told&me&to&get&in&the&freezer&'cause&there&was&a&carnival&in&there.
//&returns:&Look,&a&Bananarama&tape! } 对象函数信息 没有返回值描述 { //&summary:&Dingle,&engage&the&rainbow&machine! //&description: //&Tell&you&what,&I&wish&I&was--oh&my&g--that&beam, //&coming&up&like&that,&the&speed,&you&might&wanna&adjust&that. //&It&really&did&a&number&on&my&back,&there.&I&mean,&and&I&don't
//&wanna&say&whiplash,&just&yet,&cause&that's&a&little&too&far, //&but,&you're&insured,&right? } 函数的声明 在有的情况下,对于函数的调用和声明是隐义(invisible)的。在这种情况下,我们没有办法在函数中加入说明等(供程序调用)。如果您遭遇了这种情况,您可以使用一个类来封装函数。 注:此此方法只能在函数没有初始化的参数情况下。如过不是,则它们会被忽略。 dojo.declare( "foo", null, { //&summary:&Phew,&this&sure&is&relaxing,&Frylock. //&description: //&Thousands&of&years&ago,&before&the&dawn&of //&man&as&we&knew&him,&there&was&Sir&Santa&of&Claus:&an //&ape-like&creature&making&cr?&and&pointless&toys&out //&of&dino-bones,&hurling&them&at&chimp-like&creatures&with //&crinkled&hands&regardless&of&how&they&behaved&the //&previous&year. //&returns:&Unless&Carl&pays&tribute&to&the&Elfin&Elders&in&space. } ); 参数 1.&简单类型 简单的类型的参数可以直接在函数参数定义中注释说明。 function(/*String*/&foo,&/*int*/&bar)... 2.&可变类型参数 下面是几个修饰符供参考: *&?&可选参数 *&...&说面参数范围不确定 *&[]&数组 function(/*String?*/&foo,&/*int...*/&bar,&/*String[]*/&baz)... 3.&全局参数描述 如果你想增加一个描述,你可以将它们移至初始化块。 基本信息格式为:&*关键字*&描述字段&(&*key*&Descriptive&sentence) 参数和变量的格式为:&*关键字*&~*类型*~&描述字段&(&*key*&~*type*~&Descriptive&sentence) 注:&*关键字*&和&~*类型*~&可以使用任何字母和数字表述。 function&(foo,&bar)&{ //&foo:&String //&used&for&being&the&first&parameter //&bar:&int //&used&for&being&the&second&parameter } 变量 由于实例变量、原型变量和外部变量的声明是一致的,所以有很多的方法声明、修改变量。具体的如何定义和定位应在变量最先出现的位置指明变量的名称、类型、作用域等信息。 function&foo()&{ //&myString:&String //&times:&int //&How&many&times&to&print&myString //&separator:&String //&What&to&print&out&in&between&myString* this.myString&=&"placeholder&text"; this.times&=&5; } foo.prototype.setString&=&function&(myString)&{ this.myString&=&myS } foo.prototype.toString&=&function()&{ for(int&i&=&0;&i&&&this.&i++)&{ dojo.debug(this.myString); dojo.debug(foo.separator); } } foo.separator&=&"====="; 对象中的变量注释 应使用和对象值和方法一致的标注方式,比如在他们声明的时候: { //&key:&String //&A&simple&val key:&"val", //&key2:&String //&Another&simple&val } 返回值 因为函数可以同时返回多个不同(类型)的值,所以应每个返回值之后加入返回类型的注释。注释在行内注释即可,如果所有的返回值为同一类型,则指明返回的类型;如为多个不同的返回值,则标注返回类型为"mixed"。 function()&{ if&(arguments.length)&{ return&"You&passed&argument(s)";&//&String }&else&{ return&&//&Boolean } } 伪代码(有待讨论) 有
时候您需要在函数或者类中添加对于此函数和类的功能性流程描述。如果您打算这样做,您可以使用&/*========&(=&
字符最好出现&5&次或者更多),这样做的好处就是可以不用将这些东西加入代码(译注:原作者的意思可能为代码管理系
统)。 这样看起来在&/*=====&和&=====*/&会有非常长的一段注释,等待功能调整完毕以后就可以考虑是否删除。 /*===== module.pse o.kwArgs&=&{ //&url:&String //&The&location&of&the&file url:&"", //&mimeType:&String //&text/html,&text/xml,&etc mimeType:&"" } =====*/ function(/*module.pse o.kwArgs*/&kwArgs){ dojo.debug(kwArgs.url); dojo.debug(kwArgs.mimeType); } 标签:&JavaScript&编码规范 评论(0)&引用(3786)&浏览(252) 2008给自已的第一份礼物&选项卡效果 Posted&on&&4:55&Tsday 预览:/demo/tags1.html 附件[ematt:3] 苦
学了好几天,今天算是做出了第一个javascript的完整效果,代码执行效率应该还不是太好的,强人们看到了可以优化的地方或是有更好的思路希望指点
一下,这个代码跟网上许多下载的不太一样的地方是js和html分离了。记念一下今天,我的第一个JS程序诞生了,终于不用DOWNLOAD别人的用了。
css&code: .tags{&border:#CCCCCC&1px&&width:400&height:250&font-size:12&font-family:Arial,&Helvetica,&sans-serif}
.title{&height:25&background:#&list-style:&margin:0;&padding:0} .title&li{float:&cursor:&height:25&line-height:25&padding:0&15px&0&15}
.title&.MouseOver{&background:#&font-weight:700} .list{&clear:both} .list&div{&padding:5&display:&font-size:36&text-align:&margin-top:50px} js&code: &script&lang ge="javascript"& var&titleID,listID,titLi,listDiv titleID="title"//标题容器ID listID="list"//内容容器ID titLi=document.getElementById(titleID).getElementsByTagName("li"); listDiv=document.getElementById(listID).getElementsByTagName("div"); titLi[0].className="MouseOver"; listDiv[0].style.display="block"; for(i=0;i&titLi.i++){ titLi[i].onmouseover=function(){ show(this) return&false } } function&show(obj){ for(i=0;i&titLi.i++){ titLi[i].setAttribute("id","tit"+i); listDiv[i].setAttribute("id","list"+i); var&id="tit"+i; if(obj.id==id){ titLi[i].className="MouseOver" listDiv[i].style.display="block" }else{ titLi[i].className="" listDiv[i].style.display="none" } } } &/script& html&code: &div&class="tags"& &ul&id="title"&class="title"& &li&title1&/li& &li&title2&/li& &li&title3&/li& &li&title4&/li& &li&title5&/li& &/ul& &div&id="list"&class="list"& &div&content1&/div& &div&content2&/div& &div&content3&/div& &div&content4&/div& &div&content5&/div& &/div& &/div&
TA的最新馆藏[转]&[转]&

我要回帖

更多关于 比心APP冠名价格图片 的文章

 

随机推荐