Fdream's Blog
专注于WEB前端开发
Powered by Google
1 2 3 4 5 6 7 8 9 10

字符串函数

如果你还没有准备好开始这一讲,请参考这一系列的教程,这里是《MooTools 1.2系列教程目录》

今天我们来看一看MooTools给我们提供的额外的一些处理字符函数。这只是MooTools字符串处理中的一部分,并不包含一些神秘的函数(比如toCamelCase())和使用正则表达式处理字符串的函数。我们会在以后另外用一讲来将一下正则表达式的基本知识和在MooTools下的使用。

在开始之前,我想先花一点时间来看一下字符串函数是怎么调用的。在我的例子中,我是在字符串变量上面直接调用这个方法的,就像下面的这样:

参考代码: [复制代码] [保存代码]

var my_text_variable = "Heres some text";
//  结果                 字符串变量        方法名
var result_of_function = my_text_variable.someStringFunction();

但是我这样写只是为了能够更清楚地解释它,你应该了解到这些字符串函数也可以直接在字符串上调用,而不需要声明一个变量,就像这样...

最近在Google Reader里面看到的,一日本人在blog上提出来的,他还有一个示例页面,这里是Demo下载地址。不过在看到这篇文章之前,我就已经在我们的项目(PPLive iKan 1.0)中用过了,其中的观看历史记录就是使用的Flash来进行存取的。

其实Flash在JavaScript应用程序中当“幕后英雄”的例子早就有过了,最先是为了解决用JavaScript复制文本的问题,用Flash这可以轻而易举地解决跨浏览器问题。我之所以想到用Flash来存储观看记录是因为我觉得用Flash来保存更有优势:

  • 存储方式可靠

JavaScript中存储本地数据的常见方式是使用Cookie,还一种方式是使用UserData。写Cookie的方式也很可靠,读写都非常的容易,但是UserData有时候却不是那么可靠,不知道为什么有时候清理Cookie都会带来莫名奇妙的问题,造成UserData无法写入或者无法读取的情况,很诡异。

  • 存储空间够大

JavaScript的Cookie容量是以网站根域为限制的,IE8允许的每个域的数量是50个(IE7貌似也允许50个,IE6是20个),Firefox也是50个,每个Cookie的大小最大为4K。而使用Flash存储数据则不一样,数据可以根据路径来分开存储,而且每个存储的默认值都是10K,不够还可以向用户申请,没有上限...

如果你还没有准备好开始这一讲,请参考这一系列的教程,这里是《MooTools 1.2系列教程目录》

今天我们来看看MooTools是怎样使得过滤用户输入变得非常轻松。我们今天将讲一些基本的数字过滤,明天再更深入地讲讲字符串过滤。

注意:JavaScript中的输入过滤只是为了保证(客户端)代码顺利执行,并不能替代服务器端的字符串过滤来保护你的应用程序不被注入攻击。

在第四讲的最后的一个例子中,我们从文本输入框获取RGB值,然后使用它们来改变页面背景色,今天我们首先来看看那个例子的部分代码,并以此展开我们这一讲。

rgbToHex()

从技术上讲,rgbToHex()方法实际上是属于Array集合的。由于它是一个来处理数字的数组方法,我们今天来学习一下这个方法。从功能上来讲,rgbToHex()使用起

来很简单:

参考代码: [复制代码] [保存代码]

function changeColor(red_value, green_value, blue_value){
    var color = [red_value, green_value, blue_value].rgbToHex(); 
    alert('Converts to : ' + color); 
}

如果你还没有准备好开始这一讲,请参考这一系列的教程,这里是《MooTools 1.2系列教程目录》

欢迎开始这一系列的教程的第七讲。今天,我们来看一下如何通过MooTools 1.2和我们以前几讲中的内容来操作样式,这将给你在UI上带来很大的控制权。处理样式非常简单,不过今天我们要做一些调整。例如,我们要介绍键值对(key-value pair)对象。我们也会讲到在domready之外来传递变量,就像我们在关于函数的那一讲中学到的一样。从这里开始,我们会开始慢慢提高难度,介绍一些必要的编程概念。如果你是JavaScript新手或者第一次开始学MooTools,请确保你在明白了前面的教程,你可以随意地问我任何问题。

基本方法

.setStyle();

这个函数可以允许你设置一个元素的样式属性。我们在前面的一些例子中已经使用过了。你要做的就是把它放在你的 选择器之后,那么它将改变一个元素或者多个元素的样式属性。

参考代码: [复制代码] [保存代码]

// 定义你的选择器
// 添加.setStyle方法
// 指定样式属性和值
$('body_wrap').setStyle('background-color', '#eeeeee');
$$('.class_name').setStyle('background-color', '#eeeeee');

如果你还没有准备好,请阅读以前的教程,这里是《MooTools 1.2系列教程目录》

我们已经学习过如何来选取DOM元素,怎么创建数组,怎么创建函数,怎么把事件添加到元素,今天我们来深入地学习一下如果操纵HTML元素。通过MooTools 1.2,你可以添加新元素到一个HTML页面中,也可以删除元素,以及改变任何样式或者元素参数,这些都非常容易。

基本方法

.get();

这个工具可以让你获取元素的属性(property)。元素的属性是组成一个HTML元素的各种不同部分,例如src、value、name等等。使用.get();方法非常简单:

参考代码: [复制代码] [保存代码]

// 下面这行将返回id为“id_name”的元素的html标记名(div、a、span……)
$('id_name').get('tag');

参考代码: [复制代码] [保存代码]

<div id="body_wrap">
    <span id="id_name">Element</span> <!-- 上面的代码将返回“span” -->
</div>

还是需要一个目录,那就做一个吧!

MooTools是近来仅次于jQuery流行的JavaScript框架,也是我一直比较喜欢的开发框架,最近也正在写MooTools 1.2的注释文档。本来自己也想写一些关于MooTools的教程来着,但是自己很懒,又担心自己写的不好,反倒误了初学者。正好今天无意在国外的论坛上看到这么一个blog,发现有这么一系列的教程,写的很好,很适合初学者和对MooTools完全不熟悉的人,于是决定全部中文化。

另外,此翻译版本已获得原作者支持,在其第一篇文章中已有本文链接。

Java和JavaScript是相差极大的两种语言,尽管他们的名字非常像,而且都有类C的语法风格,很多时候这让人们很迷惑。(Fdream注:曾有人在论坛上问Java和JavaScript是什么关系?我一师兄的回答非常经典:雷锋和雷峰塔的关系。)我们来看看两者最主要的区别——对象是怎样创建的。在Java中,你有类。然后是对象,又叫实例,都是基于那些类建立的。而在JavaScript中,没有类存在,对象更像是一个包含键值对(key-value pair)的哈希表(hash table)。然后继承是什么样的呢?好,我们一步一步来。

JavaScript对象

当你考虑一个JavaScript对象时,想一下hash。它们和对象完全一样——它们都是名值对(name-value pair)集合,值可以是其它任何东西,包括对象和函数。当一个对象的属性是函数的时候,你也可以叫它们方法。

这是一个空对象:

参考代码: [复制代码] [保存代码]

var myobj = {};

现在,你可以开始给这个对象添加一些有意义的功能...

如果你还没有准备好,请阅读以前的教程,这里是《MooTools 1.2系列教程目录》

今天我们开始第五讲,在上一讲(《Mootools 1.2教程(4)——函数》)中,我们学习了在MooTools 1.2中建立和使用函数的几种不同方式。下一步就是理解事件了。和选择器类似,事件也是建立互动界面的一个重要部分。一旦你掌握了一个元素,你需要去决定什么行为来触发什么效果。先把效果留着以后在讲,我们首先看一看中间步骤和一些常见的事件。

左键单击事件

左键单击事件是web开发中最常见的事件。超链接识别点击事件,然后把你带到另外一个URL地址。MooTools能够识别其他DOM元素上的点击事件,在设计和功能上给了你极大的灵活性。给一个元素添加一个点击事件的第一步:

参考代码: [复制代码] [保存代码]

// 通过$('id_name') 取得一个元素
// 用.addEvent添加事件
// ('click')定义了事件的类型
$('id_name').addEvent('click', function(){
    // 在这里添加点击事件发生时你要执行的任何代码
    alert('this element now recognizes the click event');
});

1 2 3 4 5 6 7 8 9 10
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.3437456 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号