轻松学习JavaScript

轻松学习JavaScript
轻松学习JavaScript

什么是JavaScript

什么是JavaScript

JavaScript是一种基于对象和事件驱动的客户端脚本语言。

JavaScript最初的设计是为了检验HTML表单输入的正确性。

JavaScript起源于Netscape公司的LiveScript语言。

JavaScript的历史

JavaScript最初起源于LiveScript语言,当互联网开始流行时,越来越多的网站开始使用HTML表单与用户交互,然而表单交互却成了制约网络发展的重大瓶颈(用户总是痛苦的等待数据传送到服务器端检测,并传回是否正确,仅仅的表单检测,就产生了多次客户端与服务器端交互)。于是Netscape公司推出了LiveScript语言,最后Netscape与Sun将LiveScript命名为JavaScript(当时JAVA是很时髦的互联网名词),随后微软开始了其野心勃勃的浏览器计划,并且推出了JScript,于是网络上出现了几种类似的JavaScript语言,但是没有统一的特性与语法(当时的JavaScript开发被看做是一场噩梦,因此很多程序员并不看好JavaScript)。最终JavaScript被提交到欧洲计算机制造商协会(ECMA),做为中立的ECMA开始了标准化脚本语言之路,并将其命名为ECMAScript。

JavaScript的组成:

完整的JavaScript是由ECMAScript(语法)、Browser Objects(DOM、BOM)(特性)组成的。

几个问题为:

1:什么要学JavaScript?

因为你别无选择,只有JavaScript可以控制所有常用的浏览器,而且JavaScript是世界上最重要的编程语言之一,学习web技术必须学会JavaScript。

JavaScript是一种优美的语言,它很好,所以我们要学:)

2:JavaScript与Java相同吗?

javascript与java没有任何关系,他们本身就是两种语言,取成差不多的名字,主要是由于商业上的原因。javascript是一种客户端脚本语言

java是服务器端语言。(是SUN公司的产品.)

3:JavaScript难学吗?

不难,JavaScript入门很简单,你只要学过小学数学就可学好JavaScript,但是你要先学好HTML语言。

4:JavaScript能做什么?

JavaScript可以检测表单的正确性,实现Ajax,读、写、改变HTML页面的架构DOM,对事件做出响应,

检测浏览者所使用的设备,产生很酷很炫的网页效果DHTML等。

5:学习JavaScript需要什么软件?

只要windows的记事本与浏览器(IE,Firefox,Opera)就可以了

为什么要学习JavaScript

学习JavaScript好处很多,因为只有JavaScript可以控制所有常用的浏览器,而且JavaScript 是世界上最重要的编程语言之一,学习web技术必须学会JavaScript。JavaScript是一种优美的语言,它很好, javascript与java没有任何关系,他们本身就是两种语言,取成差不多的名字,主要是由于商业上的原因。javascript是一种客户端脚本语言,java是服务器端语言。所以javaScript与Java是不相同.

JavaScript学习推荐用书

《Javascript高级程序设计》:不要被“高级”这两个字吓到,这个书其实是本很不错的入门的书,因为这本书也很详细的介绍了javascript的全部内置对象和语法,并且介绍了面向对象的思想,DOM、BOM的知识,正则表达式,高级的DOM处理。Ajax的知识,还是很全面的。而且个人认为这本书对基础知

识的介绍并不比其他的同类书逊色。比起《Javascript权威指南》(我当时买点的是第4版),我觉得更

详细些和更清楚些。在《指南》的第4版中,我觉得那本书中讲的东西有点混乱。感觉一个知识点还没有

讲清楚,就给你一个什么类,看得不明不白的。因为没有看《指南》的第五版,所以这里不推荐给大家。

而且《高级程序设计》这本书要比《指南》便宜不少。《高级程序设计》中也提出了采用功能(future)探

测来取代浏览器版本探测来处理脚本兼容性的处理。个人觉得《指南》有的,这本书也都说了。还有我前

面提到的,这本书的作者是YAHOO的资深的前端工程师,你可以在他的网站下载到相关的代码。

《Javascript DOM 编程艺术》:我个人的感觉是学习DOM编程的经典入门书籍,作者是https://www.360docs.net/doc/862226067.html,的创始人之一,书中以浅显易懂的语言,教你一步一步的来讲解DOM编程,一点点地提升网站的用户体验。书中一直强调不唐突的脚本开发,网站要向后兼容,强调网站的可访问性。这个也是

大家在做前端开发时应当努力追求的,也是必须要有的开发指导思想。可惜很多的后台开发的程序员,根

本没有这个概念,所以你在开发的时候,一定要给你的程序员多洗脑。呵呵!

《CSS权威指南》第三版:做前端开发,你必须要了解CSS,书中对CSS2的介绍很详细了。仔细

的看吧,我每次看的时候,有会有新的收获。

《网站重构》、《CSS网站布局实录》(唯一一本推荐的国人写的书):看完了,你会知道为什

么学WEB标准?你会知道前端工程师的工作很重要。

提高阶段:

《Javascript DOM 高级编程》:这本书里不光详细的介绍的DOM编程的技巧,也讲了使用面向对象编程的方法,使用命名空间来管理书中所写的开发库,在不断的学习中,你的个人DOM Javascript库也不断的充实。呵呵,就像我前面说的,你可以写出自己的库了。当然书中的代码比较松散,还不能运用到实际的企业级的开发中。但是书中对闭包的介绍和面向对象的开发思想,会使你对JS的认识又提高了一个层次,虽然对面向对象开发的讲解还不够深。

《XML技术手册》:我们知道ajax,其中X就是指的XML,所以要了解XML的相关知识,你这本书,是一定要看的。看了之后你会发现XML要了解的东西实在太多了,可能跟你了解的东西相比,你才知道点皮毛。对了,这里说下,我并不推荐你使用XML来作为你的Ajax的程序的数据的载体。为什么?因为很不经济。你先把数据转换成XML文档,然后再通过Javascript把XML文档中的数据提出来,把文档转成数据。而浏览器对XPath处理的兼容性的处理,你会很发狂的。现在我们有一个代替他的东西JSON。但是由于XML 已经是很多标准的默认数据通讯载体,比如RSS等,所以你还是得掌握。

个人觉得学Javascript看这些书基本差不多了。

《精通Javascript》:名字起的太玄了,书不怎么样,什么都讲了点,就是不讲他怎么用jQuery 来实现那些高级功能的。

《PPK 谈 Javascript》感觉跟《精通》差不多,什么都讲点,不过多点。还有起码不像《精通》起那么臭屁的名字,作者的网站确实很推荐大家去看看,https://www.360docs.net/doc/862226067.html,/。

《CSS高级技巧》介绍了很多HACK技巧,也很有用,是本好书,就是翻译得比较烂。

《Ajax in Action》、《Ajax高级编程》介绍AJAX的内容,主要看看XMLHTTPRequest的介绍把,里面的例子,很多在《高级编程》中都看过了。

《JavaScript王者归来》我上当了,自己也SB了一回。

《JavaScript:The Good Parts(影印版)》好书,你会知道JAVASCIRPT这闷语言什么东西是好的,什么东西不好?

其中,讲的内容都是大同小异。看完这些书,你了解了Javascript的相关知识,了解了CSS(你会知道CSS都有哪些选择器),你了解了XML的知识。呵呵,基础的开发你应该都可以自己解决了。而且你对Javascript的面向对象的开发也有了了解,有着向后兼容的开发思想。显然你看完这些书,你对WEB 标准也会有一个更深层次的理解。

转自:https://www.360docs.net/doc/862226067.html,/clpzpc/blog/item/d1e9c00068782bdf267fb590.html

JavaScript学习网站

JavaScript基础教程

https://www.360docs.net/doc/862226067.html,/jiaocheng/javascript-jiaocheng-352.html

这是一个JavaScript的基本教程,它从零开始说起,为大家提供逐步的学习过程!本教程为未接触过js脚本的读者提供了比较完善的初级知识。

Javascript视频教程

https://www.360docs.net/doc/862226067.html,/jiaocheng/javascript-shipin-jiaocheng-405.html

张孝祥的Javascript视频教程。教程中用到的代码网上可以找到。本教程从HTML基础入门讲解到JvaaScript高级进阶,不失为一套好的入门Javascript视频教程。

其他知识,请看:https://www.360docs.net/doc/862226067.html,/jiaocheng/index.html

给JavaScript新手的24条实用建议

为JavaScript做一点性能小提升吧!

本文列出了24条能让你的代码编写过程更为轻松高效的建议。也许您还是JavaScript初学者,刚刚写完自己的Hello World,那这里有很多对您的工作将十分有用的小贴士;也许有些技巧您已经知道,那就试试快速浏览一下,看能不能发现一点新东西吧!

注:本文多次用到Firebug的console对象,请参考Firebug Console API 。关于firebug的更详细介绍,请猛击这里: https://www.360docs.net/doc/862226067.html,/developerworks/cn/web/wa-aj-firebug/

1. 用 === 代替 ==

JavaScript里有两种不同的相等运算符:===|!== 和==|!=。相比之下,前者更值得推荐。请尽量使用前者。

引用:

“如果两个比较对象有着同样的类型和值,===返回true,!==返回false。”

– JavaScript: The Good Parts

不过,如果使用==和!=,在操作不同数据类型时, 你可能会遇到一些意想不到的问题。在进行相等判断前,JavaScript会试图将它们转换为字符串、数字或 Boolean量。

2. 避免使用Eval函数

Eval函数把一个字串作为参数,并把字串作为JavaScript语句执行,返回结果(参考)。

此函数不仅会降低你脚本的执行效率,而且还大大增加了安全风险,因为它赋予了作为文本的参数太大的权利。千万别用!

3. 不要使用快速写法

技术上说,你可以省略掉大部分花括弧和句尾分号,绝大多数浏览器都能正确执行以下语句:

代码:

if(someVariableExists) x = false

不过,如果是这样的呢:

代码:

if(someVariableExists) x = false anotherFunctionCall();

你可能会认为它和下面的语句相等:

代码:

if(someVariableExists) { x = false; anotherFunctionCall();}

不幸的是,事实并非如此。现实情况是它等价于:

代码:

if(someVariableExists) { x = false;}anotherFunctionCall();

如您注意到的,再漂亮的缩进也不能代替这华丽的花括弧。在所有情况下都请写清楚花括号和句尾分号。在只有一行语句的时候能偶尔省略掉,虽然下这么做也是极度不被推荐的:

代码:

if(2 + 2 === 4) return 'nicely done';

多考虑下将来吧,孩子

假设,在将来的开发过程中,你需要为这个 if 语句添加更多的命令呢?到时候你还不是得把括号给加上?

4. 好好利用JS Lint

JSLint 是由 Douglas Crockford 编写的一个调试器。你只需要贴上你的代码,它就能快速为您扫描出任何明显的错误和问题。

引用:

“JSLint扫描接收的代码。发现问题,描述问题,并给出其在源码中的大概位置。可发现的问题包括但不限于语法错误,虽然语法错误确实是最常见的。JSLint也会用

约定俗成的习惯检查代码的格式化风格,以及结构错误。通过JSLint的扫描并不能保证你的程序就完全正确。它只是为您提供了额外一双发现错误的眼睛。”

– JSLint 文档

完成代码之前,把它放到JSLint里检查一下,快速消灭你的无心之过。

5. 在页面底部加载脚本

请记住——我们要千方百计保证客户端的页面载入速度尽可能的快。而脚本没载入完成,浏览器就没法加载页面的剩余部分。

如果你的JS文件只是添加一些额外功能——例如,为点击某链接绑定事件——那大可以等页面加

载基本完成后再做。把JS文件放到页面最后,body的结束标签之前,这样做最好了。

更好的写法是

代码:

超哥是世界上最帅的人。https://www.360docs.net/doc/862226067.html,是世界上最好看的博客。

type="text/javascript" src="path/to/file.js">

6. 在 For 语句外部声明变量

当需要执行冗长的for语句时,不要让JavaScript引擎每次都重复那些没有必要的操作。例如:这样不好

代码:

for(var i = 0; i < someArray.length; i++) { var container =

document.getElementById('container'); container.innerHtml += 'my number: ' + i; console.log(i);} 这段代码每次都重新定义数组长度,每次都在遍历DOM寻找container元素——太傻了!

这样好多了

代码:

var container = document.getElementById('container');for(var i = 0, len = someArray.length; i < len; i++) { container.innerHtml += 'my number: ' + i; console.log(i);}

7. 快速构建字串

要对一个数组或对象做循环操作时,不要老惦记着一表人才的for语句,拿点创意出来嘛!明明就还有很多更快的办法:

代码:

var arr = ['item 1', 'item 2', 'item 3', ...];var list = '

  • ' + arr.join('
  • ') + '
';

8. 减少全局变量

代码:

var name = 'Jeffrey';var lastName = 'Way';function doSomething() {...}console.log(name); // Jeffrey -- or https://www.360docs.net/doc/862226067.html,

更好的写法

代码:

var DudeNameSpace = { name : 'Jeffrey', lastName : 'Way', doSomething : function() {...}}console.log(https://www.360docs.net/doc/862226067.html,); // Jeffrey

注意看,我们是如何戏剧化地把“乱七八糟的脚印”都归到“DudeNameSpace”这对象之下的。

9. 写好注释

可能一开始你会觉得并无必要,但相信我,你将来会主动想要尽可能写好代码的注释的。当你几个月后再回看某项目时,结果却发现很难想起当时写某句东西时脑子在想的什么了,是不是很让人沮丧呢?或者,如果有同事要修订你的代码呢?一定,一定要为你代码里的重要部分加上注释。

代码:

// 遍历数组,输出各自名称for(var i = 0, len = array.length; i < len; i++)

{ console.log(array);}

10. 试试渐进增强

一定要记得为未启用JavaScript的情况提供替代方案。大家可能会认为,“大部分我的访客都启用了JavaScript的,我才不用担心”。这样的话,你可就大错特错了!

你有没有试过看看禁用JavaScript后你那漂亮的滑动器都成啥样了?(你可以下载 Web Developer ToolBar 轻松完成这项任务。)禁用之后你的网站可能就彻底失去了可用性!经验之谈:开发初期总是按照没有JavaScript来设计你的网站,之后再进行渐进地功能增强,小心翼翼地改变你地布局。

11. 不要传递字串给“setInterval” 或“setTimeout”

看看下面的代码:

代码:

setInterval("document.getElementById('container').innerHTML += 'My new number: ' + i", 3000);

不仅执行不高效,而且和 eval 函数有着同样的高风险。千万不要把字串传递给 setInterval 和setTimeout。恰当的做法是,传递一个函数名:

代码:

setInterval(someFunction, 3000);

12. 不要使用with语句

初识之下,“with”语句似乎还挺好用的。它用于设置代码在特定对象中的作用域。其基本用法是提供深入到对象中处理元素的快速写法。例如:

代码:

with (being.person.man.bodyparts) { arms = true; legs = true;}

–等价于—

代码:

being.person.man.bodyparts.arms = true;being.person.man.bodyparts.legs= true;

不幸的是,测试表明,若你要为对象插入新成员,with的表现非常糟糕,它的执行速度非常缓慢。替代方案是声明一个变量:

代码:

var o = being.person.man.bodyparts;o.arms = true;o.legs = true;

13. 使用 {},而不用New Object()

在JavaScript有多种方式能新建对象。最传统的方法是 new 语句,如下:

代码:

var o = new Object();https://www.360docs.net/doc/862226067.html, = 'Benhuoer';https://www.360docs.net/doc/862226067.html,stName = 'Yang';o.someFunction = function() { console.log(https://www.360docs.net/doc/862226067.html,);}

不过,这一方法读起来却比较糟糕。我强烈建议你采用下面这种在文字样式上更为强健的写法:

更好的写法

代码:

var o = { name: 'Jeffrey', lastName = 'Way', someFunction : function()

{ console.log(https://www.360docs.net/doc/862226067.html,); }};

注意,如果你想新建一个空对象,用 {} 就能行:

代码:

var o = {};

引用:

“对象字面符(Objects literals)帮助我们写出支持很多特性,同时又关联性强、简明直接的代码。没必要直接调用新建语句,然后再费心维护声明变量和传递变量的语句之间的正确顺序,等等。” –https://www.360docs.net/doc/862226067.html,

14. 使用[],而不用New Array()

新建数组时的同类型运用。

行得通的写法

代码:

var a = new Array();a[0] = "Joe";a[1] = 'Plumber';

更好的写法

代码:

var a = ['Joe','Plumber'];

引用:

“在JavaScript编程中经常遇到的一个错误是,该用数组时却用了对象,该用对象时却用了数组。规则其实很简单:当属性名是小的连续整数时,你应该使用数组。其他情况,使用对象。” – Douglas

Crockford

15. 一长列变量声明?别写那么多var,用逗号吧

代码:

var someItem = 'some string';var anotherItem = 'another string';var oneMoreItem = 'one more string';

更好的写法

代码:

var someItem = 'some string', anotherItem = 'another string', oneMoreItem = 'one more string';

…不言自明。我不知道这样做能否提升代码执行速度,但是确实让你的代码干净许多。

16. 注意变量的大小写

17. 千万千万记得写分号

大部分浏览器都允许你不写句尾分号:

代码:

var someItem = 'some string'function doSomething() { return 'something'} 之前已经说过,这样做会造成潜在的更大、更难以发现的问题:

更好的写法

代码:

var someItem = 'some string';function doSomething() { return 'something';} ]

18. “For in” 语句

遍历对象时,你可能会发现你还需要获取方法函数。所以遇到这种情况时,请一定记得给你的代码包一层 if 语句,用以过滤信息。

代码:

for(key in object) { if(object.hasOwnProperty(key) { ...then do something... }} 引自[/i][i] Douglas Crockford 所作:[/i][i] JavaScript: The Good Parts

19. 使用Firebug的“Timer”功能优化你的代码

想要轻松地快速了解某项操作的用时吗?使用Firebug的timer功能来记录结果好了。

代码:

function TimeTracker(){console.time("MyTimer");for(x=5000; x > 0;

x--){}console.timeEnd("MyTimer");}

20. 读,读,读……Read, Read, Read…

虽然我是Web开发博客(就像这个!)的超级粉丝,但吃饭和睡觉前除了看书好像也别无选择~ 在你的床头柜上摆一本Web开发的好书吧!下列书单都是我的最爱:

Object-Oriented JavaScript(暂无中文版)

JavaScript: The Good Parts(中文版)

Learning jQuery 1.3(暂无中文版,但你可以看看老版本的中文版)

Learning JavaScript(中文版)

阅读他们…… 反复阅读很多次!我现在都还在读。

21. 自决的函数

相比于调用函数,让函数在页面载入或者某一父函数被调用时自动执行,是十分简单方便的做法。你只需要把你的函数包在父辈之内,然后添上一个额外的括号,本质上这括号就触发了你定义的函数(了解更多)。

代码:

(function doSomething() { return { name: 'jeff', lastName: 'way' };})();

22. 原生 JavaScript 总是会比使用代码库来的快

诸如jQuery和Mootools这样的JavaScript库,能为你写代码的过程省下不少时间——尤其是当需要 AJAX 操作时。不过你可得记住,只要你的代码写得恰当,原生JavaScript总是会比利用代码库的写法执行得快一些。

jQuery的“each” 方法对于循环操作十分便利,但是使用原生态的for语句总归会快很多。

23. Crockford 的 JSON.Parse

尽管 JavaScript 2会内建JSON处理器,但写这篇文章之时,我们还是需要自己实现。Douglas Crockford,JSON的创建者,已经为我们创作出能直接使用的处理器了。您可以在这里下载。

导入这段代码,你就能新建 JSON 全局对象,然后处理你的 .json 文件。

代码:

var response = JSON.parse(xhr.responseText); var container =

document.getElementById('container');for(var i = 0, len = response.length; i < len; i++) {container.innerHTML += '

  • ' + https://www.360docs.net/doc/862226067.html, + ' : ' + response.email + '
  • ';} 关于JSON,请查看更多介绍。

    24. 移去“Language”

    很多年前,language还是每段script标签必备属性:

    代码:

    不过现在,这属性已经没啥用很久了…… 所以,删掉算啦!

    就这些了,朋友们~

    javascript技巧全集(一)

    事件源对象

    event.srcElement.tagName

    event.srcElement.type

    捕获释放

    event.srcElement.setCapture();

    event.srcElement.releaseCapture();

    事件按键

    event.keyCode

    event.shiftKey

    event.altKey

    event.ctrlKey

    事件返回值

    event.returnValue

    鼠标位置

    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=scrollwindow;

    元素

    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=true

    根据宽度换行

    style="word-break:break-all"

    自动刷新

    简单邮件

    href="[email=aaa@https://www.360docs.net/doc/862226067.html,?subject=ccc&body=xxxyyy]mailto:aaa@https://www.360docs.net/doc/862226067.html,?subject=ccc&body=xxxyyy[/email]">

    快速转到位置

    obj.scrollIntoView(true)

    anchors

    网页传递参数

    location.search();

    可编辑

    obj.contenteditable=true

    执行菜单命令

    obj.execCommand

    双字节字符

    /[^\x00-\xff]/

    汉字

    /[\u4e00-\u9fa5]/

    让英文字符串超出表格宽度自动换行

    word-wrap: break-word; word-break: break-all;

    透明背景

    获得style内容

    obj.style.cssText

    HTML标签

    document.documentElement.innerHTML

    第一个style标签

    document.styleSheets[0]

    style标签里的第一个样式

    document.styleSheets[0].rules[0]

    防止点击空链接时,页面往往重置到页首端。

    word

    上一网页源

    asp:

    request.servervariables("HTTP_REFERER")

    javascript:

    document.referrer

    释放内存

    CollectGarbage();

    禁止右键

    document.on_contextmenu = function() { return false;}

    禁止保存

    禁止选取

    favicon.ico 名字最好不变16*16的16色,放虚拟目录根目录下

    收藏栏图标

    查看源码

    关闭输入法

    自动全选

    ENTER键可以让光标移到下一个输入框

    文本框的默认值

    title换行

    obj.title = "123 sdfs "

    获得时间所代表的微秒

    var n1 = new Date("2004-10-10".replace(/-/g, "\/")).getTime()

    窗口是否关闭

    win.closed

    checkbox扁平


    获取选中内容

    document.selection.createRange().duplicate().text

    自动完成功能

    打开该功能

    关闭该功能

    窗口最大化

    无关闭按钮IE window.open("aa.htm", "meizz", "fullscreen=7");

    统一编码/解码 alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe"))) encodeURIComponent对":"、"/"、";" 和 "?"也编码

    转自网络

    javascript技巧全集(二)

    //各种尺寸

    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;

    //过滤数字

    on_paste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false">

    //特殊用途

    onclick="window.external.ImportExportFavorites(true,'http://localhost');">

    onclick="window.external.ImportExportFavorites(false,'http://localhost');">

    //不缓存

    //正则匹配

    匹配中文字符的正则表达式: [\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,'')"

    on_beforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

    1.用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"

    on_beforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

    2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'')

    "on_beforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

    3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'')

    "on_beforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

    //消除图像工具栏

    or

    //无提示关闭

    function Close()

    {

    var ua=https://www.360docs.net/doc/862226067.html,erAgent

    var ie=navigator.appName=="Microsoft Internet Explorer"?true:false

    if(ie)

    {

    var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE "))))

    if(IEversion< 5.5)

    {

    var str = ''

    str += '

    ';

    document.body.insertAdjacentHTML("beforeEnd", str);

    document.all.noTipClose.Click();

    }

    else

    {

    window.opener =null;

    window.close();

    }

    }

    else

    {

    window.close()

    }

    }

    //取得控件得绝对位置(1)

    //获得控件的绝对位置(2)

    oRect = obj.getBoundingClientRect();

    oRect.left

    oRect.

    //最小化,最大化,关闭

    //光标停在文字最后

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

    进入页面

    推出页面

    这个是页面被载入和调出时的一些特效。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 竖条

    //网页是否被检索

    其中属性值有以下一些:

    属性值为"all": 文件将被检索,且页上链接可被查询;

    属性值为"none": 文件不被检索,而且不查询页上的链接;

    属性值为"index": 文件将被检索;

    属性值为"follow": 查询页上的链接;

    属性值为"noindex": 文件不检索,但可被查询链接;

    属性值为"nofollow":

    //打印分页

    page1

    page2

    转自网络

    javascript技巧全集(三)

    //设置打印


    具体使用手册,更多信息,

    //自带的打印预览

    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) 关闭窗体无提示

    相关主题
    相关文档
    最新文档