prototype.js开发笔记

本文档介绍了Prototype.js的基本概念及其提供的实用方法,包括$()、$F()等便捷函数,帮助开发者快速掌握该库的使用技巧。

 

prototype.js开发笔记<o:p></o:p>

Table of Contents<o:p></o:p>

1. Programming Guide <o:p></o:p>

1.1. Prototype是什么? <o:p></o:p>

1.2. 关联文章 <o:p></o:p>

1.3. 通用性方法 <o:p></o:p>

1.3.1. 使用 $()方法 <o:p></o:p>

1.3.2. 使用$F()方法 <o:p></o:p>

1.3.3. 使用$A()方法 <o:p></o:p>

1.3.4. 使用$H()方法 <o:p></o:p>

1.3.5. 使用$R()方法 <o:p></o:p>

1.3.6. 使用Try.these()方法<o:p></o:p>

1.4. Ajax 对象 <o:p></o:p>

1.4.1. 使用 Ajax.Request <o:p></o:p>

1.4.2. 使用 Ajax.Updater <o:p></o:p>

2. prototype.js参考 <o:p></o:p>

2.1. JavaScript 类的扩展 <o:p></o:p>

2.2. Object 类的扩展 <o:p></o:p>

2.3. Number 类的扩展 <o:p></o:p>

2.4. Function 类的扩展 <o:p></o:p>

2.5. String 类的扩展 <o:p></o:p>

2.6. document DOM 对象的扩展 <o:p></o:p>

2.7. Event 对象的扩展 <o:p></o:p>

2.8. prototype.js中定义的新对象和类 <o:p></o:p>

2.9. PeriodicalExecuter 对象 <o:p></o:p>

2.10. Prototype 对象 <o:p></o:p>

2.11. Class 对象 <o:p></o:p>

2.12. Ajax 对象 <o:p></o:p>

2.13. Ajax.Base <o:p></o:p>

2.14. Ajax.Request <o:p></o:p>

2.15. options 参数对象 <o:p></o:p>

2.16. Ajax.Updater <o:p></o:p>

2.17. Ajax.PeriodicalUpdater <o:p></o:p>

2.18. Element 对象 <o:p></o:p>

2.19. Abstract 对象 <o:p></o:p>

2.20. Abstract.Insertion <o:p></o:p>

2.21. Insertion 对象 <o:p></o:p>

2.22. Insertion.Before <o:p></o:p>

2.23. Insertion.Top <o:p></o:p>

2.24. Insertion.Bottom <o:p></o:p>

2.25. Insertion.After <o:p></o:p>

2.26. Field 对象 <o:p></o:p>

2.27. Form 对象 <o:p></o:p>

2.28. Form.Element 对象 <o:p></o:p>

2.29. Form.Element.Serializers 对象 <o:p></o:p>

2.30. Abstract.TimedObserver <o:p></o:p>

2.31. Form.Element.Observer <o:p></o:p>

2.32. Form.Observer <o:p></o:p>

2.33. Abstract.EventObserver <o:p></o:p>

2.34. Form.Element.EventObserver <o:p></o:p>

2.35. Form.EventObserver <o:p></o:p>

2.36. Position 对象 (预备文档)<o:p></o:p>

覆盖版本 1.3.1 <o:p></o:p>

Chapter 1. Programming Guide<o:p></o:p>

1.1. Prototype是什么?<o:p></o:p>

或许你还没有用过它, prototype.js 是一个由Sam Stephenson写的JavaScript包。这个构思奇妙编写良好的一段兼容标准的一段代码将承担创造胖客户端, 高交互性WEB应用程序的重担。轻松加入Web 2.0特性。<o:p></o:p>

如果你最近体验了这个程序包,你很可能会发现文档并不是它的强项之一。像所有在我之前的开发者一样,我只能一头扎进prototype.js的源代码中并且试验其中的每一个部分。 我想当我学习他的时候记写笔记然后分享给其他人将会很不错。<o:p></o:p>

我也一起提供了这个包的对象,类,方法和扩展的 非官方参考 <o:p></o:p>

1.2. 关联文章<o:p></o:p>

高级JavaScript指南<o:p></o:p>

1.3. 通用性方法<o:p></o:p>

这个程序包里面包含了许多预定义的对象和通用性方法。编写这些方法的明显的目的就是为了减少你大量的重复编码和惯用法。<o:p></o:p>

1.3.1. 使用 $()方法<o:p></o:p>

$() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。<o:p></o:p>

比起DOM中的方法,这个更胜一筹。你可以传入多个id作为参数然后 $() 返回一个带有所有要求的元素的一个 Array 对象。下面的例子会向你描述这些。<o:p></o:p>

<HTML><o:p></o:p>
<HEAD><o:p></o:p>
<TITLE> Test Page </TITLE><o:p></o:p>
<script src="prototype-1.3.1.js"></script><o:p></o:p>
 <o:p></o:p>
<script><o:p></o:p>
    function test1()<o:p></o:p>
    {<o:p></o:p>
        var d = $('myDiv');<o:p></o:p>
        alert(d.innerHTML);<o:p></o:p>
    }<o:p></o:p>
 <o:p></o:p>
    function test2()<o:p></o:p>
    {<o:p></o:p>
        var divs = $('myDiv','myOtherDiv');<o:p></o:p>
        for(i=0; i<divs.length; i++)<o:p></o:p>
        {<o:p></o:p>
            alert(divs[i].innerHTML);<o:p></o:p>
        }<o:p></o:p>
    }<o:p></o:p>
</script><o:p></o:p>
</HEAD><o:p></o:p>
 <o:p></o:p>
<BODY><o:p></o:p>
    <div id="myDiv"><o:p></o:p>
        <p>This is a paragraph</p><o:p></o:p>
    </div><o:p></o:p>
    <div id="myOtherDiv"><o:p></o:p>
        <p>This is another paragraph</p><o:p></o:p>
    </div><o:p></o:p>
 <o:p></o:p>
    <input type="button" value=Test1 onclick="test1();"><br><o:p></o:p>
    <input type="button" value=Test2 onclick="test2();"><br><o:p></o:p>
 <o:p></o:p>
</BODY><o:p></o:p>
</HTML><o:p></o:p>

这个方法的另一个好处就是你可以传入id字符串或者元素对象自己,这使得在创建可以传入任何形式参数的方法的时候, 它变得非常有用。<o:p></o:p>

1.3.2. 使用$F()方法<o:p></o:p>

$F()方法是另一个非常受欢迎的简写。它可以返回任何输入表单控件的值,如文本框或下拉框。 这个方法可以传入元素的id或者元素自己。<o:p></o:p>

<script><o:p></o:p>
    function test3()<o:p></o:p>
    {<o:p></o:p>
        alert(  $F('userName')  );<o:p></o:p>
    }<o:p></o:p>
</script><o:p></o:p>
 <o:p></o:p>
<input type="text" id="userName" value="Joe Doe"><br> <o:p></o:p>
<input type="button" value=Test3 onclick="test3();"><br><o:p></o:p>

1.3.3. 使用$A()方法<o:p></o:p>

$A()方法把接收到的参数转换成一个Array对象。<o:p></o:p>

这个方法加上对Array类的扩展,可以很容易的转换或者复制任意的列举列表到Array对象, 一个被推荐使用的用法就是转换DOMNodeLists到一个普通的数组里,可以被更广泛高效的使用, 看下面的例子。<o:p></o:p>

<script><o:p></o:p>
 <o:p></o:p>
    function showOptions(){<o:p></o:p>
        var someNodeList = $('lstEmployees').getElementsByTagName('option');<o:p></o:p>
        var nodes = $A(someNodeList);<o:p></o:p>
 <o:p></o:p>
        nodes.each(function(node){<o:p></o:p>
                alert(node.nodeName + ': ' + node.innerHTML);<o:p></o:p>
            });<o:p></o:p>
    }<o:p></o:p>
</script><o:p></o:p>
 <o:p></o:p>
<select id="lstEmployees" size="10" ><o:p></o:p>
    <option value="5">Buchanan, Steven</option><o:p></o:p>
    <option value="8">Callahan, Laura</option><o:p></o:p>
    <option value="1">Davolio, Nancy</option><o:p></o:p>
</select><o:p></o:p>
 <o:p></o:p>
<input type="button" value="Show the options" onclick="showOptions();" > <o:p></o:p>

1.3.4. 使用$H()方法<o:p></o:p>

$H()方法把对象转化成可枚举的貌似联合数组Hash对象。<o:p></o:p>

<script><o:p></o:p>
    function testHash()<o:p></o:p>
    {<o:p></o:p>
        //let's create the object<o:p></o:p>
        var a = {<o:p></o:p>
            first: 10,<o:p></o:p>
            second: 20,<o:p></o:p>
            third: 30<o:p></o:p>
            };<o:p></o:p>
 <o:p></o:p>
        //now transform it into a hash<o:p></o:p>
        var h = $H(a);<o:p></o:p>
        alert(h.toQueryString()); //displays: first=10&second=20&third=30<o:p></o:p>
    }<o:p></o:p>
 <o:p></o:p>
</script><o:p></o:p>

1.3.5. 使用$R()方法<o:p></o:p>

$R()方法是new ObjectRange(lowerBound, upperBound, excludeBounds)的一个简单快捷的使用方式。<o:p></o:p>

ObjectRange类文档里面有完整的解释。 同时,我们来看看一个简单的例子, 来演示通过each方法遍历的用法。 那个方法的更多解释在Enumerable对象文档里面。<o:p></o:p>

<script><o:p></o:p>
    function demoDollar_R(){<o:p></o:p>
        var range = $R(10, 20, false);<o:p></o:p>
        range.each(function(value, index){<o:p></o:p>
            alert(value);<o:p></o:p>
        });<o:p></o:p>
    }<o:p></o:p>
 <o:p></o:p>
</script><o:p></o:p>
 <o:p></o:p>
<input type="button" value="Sample Count" onclick="demoDollar_R();" > <o:p></o:p>

1.3.6. 使用Try.these()方法<o:p></o:p>

Try.these() 方法使得实现当你想调用不同的方法直到其中的一个成功正常的这种需求变得非常容易, 他把一系列的方法作为参数并且按顺序的一个一个的执行这些方法直到其中的一个成功执行,返回成功执行的那个方法的返回值。<o:p></o:p>

在下面的例子中, xmlNode.text在一些浏览器中好用,但是xmlNode.textContent在另一些浏览器中正常工作。 使用

内容概要:本文系统介绍了标准化和软件知识产权的基础知识,涵盖标准化的基本概念、分类、标准代号、国际标准的采用原则及程度,重点讲解了信息技术标准化、ISO与IEC等国际标准化组织以及ISO9000和ISO/IEC15504等重要标准体系;在知识产权部分,详细阐述了知识产权的定义、分类及特点,重点分析了计算机软件著作权的主体、客体、权利内容、行使方式、保护期限及侵权认定,同时涉及商业秘密的构成与侵权形式、专利权的类型与申请条件,以及企业如何综合运用著作权、专利、商标和商业秘密等方式保护软件知识产权。; 适合人群:从事软件开发、项目管理、IT标准化或知识产权相关工作的技术人员与管理人员,以及备考相关资格考试的学习者;具备一定信息技术背景,希望系统掌握标准化与软件知识产权基础知识的专业人员。; 使用场景及目标:①帮助理解各类标准的分类体系及国际标准采用方式,提升标准化实践能力;②指导企业在软件研发过程中有效保护知识产权,规避法律风险;③为软件著作权登记、专利申请、技术保密等提供理论依据和操作指引。; 阅读建议:建议结合国家相关政策法规和实际案例进行深入学习,重点关注软件著作权与专利权的适用边界、标准制定流程及企业知识产权管理策略,强化理论与实践的结合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值