安裝步驟:
1、下載aptana3.2 Eclipse Plugin插件.
下載地址:http://update1.aptana.org/studio/3.2/024747/index.html
2、解壓出features與plugins文件夾,COPY到
D:\Program Files\MyEclipse Blue Edition\MyPlugins\aptana3.2
3、在D:\Program Files\MyEclipse Blue Edition\MyEclipse Blue Edition 9.0 M2\dropins在新建文件aptana.link, 內容是
path=D:\\Program Files\\MyEclipse Blue Edition\\MyPlugins\\aptana3.2 (注意斜線的方向,反了不行!Myeclipse會找不到路徑?。?/p>
4、刪除D:\Program Files\MyEclipse Blue Edition\MyEclipse Blue Edition 9.0 M2\configuration文件夾中org.eclipse.update文件夾
5、重啟 Myeclipse,看到了界面
2. 配置:
配置 Code Assist,對我來說很重要,Javascript學的不咋地啊
配置 File Association,文件關聯,主要有 htm,html,xml,javascript,css(這個沒找到) 【貌似不支持使用Aptana Editor 來打開JSP文件】
再配置一些設置之后,重啟Myeclipse,試試看,打開一個 html,呵呵,js有代碼提示幫助,Enjoy it!
寫Web頁面就像我們建設房子一樣,地基牢固,房子才不會倒。同樣的,我們制作Web頁面也一樣,一個良好的HTML結構是制作一個美麗的網站的開始,同樣的,良好的CSS只存在同樣良好的HTML中,所以一個干凈的,語義的HTML的優點很多,那么平時制作中,我們做到了這一點嗎?我們一起來看一張圖片:
上圖展示了兩段代碼,我想大家都只會喜歡第一種,我們先不說其語義,至少他的結構讓我們看上去清爽,而第二種呢?一看就是糟糕的代碼的代碼,讓人討厭的代碼。那么要怎么樣才能寫出一個好的代碼,整潔的代碼呢?下面我們就從以下十二個方面一起來學習,只要大家以后在寫代碼的時候能堅持下面的十二個原則,保準 你的代碼質量能上去,而且你寫的代碼會人見人愛。
如果我們想做好一件事情,首先要知道我們有哪些權利去做,就如“DOCTYPE”的聲明,我們沒有必要去討論是否使用HTML4.01或者XHTML1.0或者說現在的HTML5都提供了嚴格版本或者過渡版本,這些都能很好的支持我們寫的代碼:
由于我們現在的布局不需要table布局也能做出很好的布局,那么我們就可以考慮不使用過渡型而使用嚴格型的“DOCTYPE”,為了向后兼容,我建議使用HTML5的聲明模式:
<!DOCTYPE HTML> <html lang="en-US">
如果想了解更多這方面的知識,可以點擊:
在每個頁面的開始中,我們都在<head>中設置了字符集,我們這里都是使用“UTF-8”
<meta charset="UTF-8" />
而且我們在平時寫頁面中時,時常會碰到"&"這樣的符號,那么我們不應該直接在頁面這樣寫“&”:
我們應該在代碼中使用字符編碼來實現,比如說“&”我們在代碼中應該使用“&”來代替他。
如果想了解更多這方面的知識,可以點擊:
在頁面編輯中,代碼的縮進有沒有正確,他不會影響你網站的任何功能,但要是你沒有一個規范的縮進原則,讓讀你代碼的人是非常的生氣,所以說正確的代碼縮進可以增強你的代碼可讀性。標準程序的縮進應該是一個制表符(或幾個空格),形像一點的我們來看下文章開頭那張圖,或者一起來看下面展示的這張圖,你看后就知道以后自己的代碼要怎么樣書寫才讓人看了爽:
不用說,大家都喜歡下面的那種代碼吧。這只是一個人的習慣問題,不過建議從開始做好,利人利已。有關于這方面的介紹,大家還可以參考:Clean up your Web pages with HTML TIDY
頁面中寫入CSS樣式有很多種方法,有些直接將樣式放入頁面的“<head>”中,這將是一個很不好的習慣,因為這樣不僅會搞亂我們的標記,而且這些樣式只適合這一個HTML頁面。所以我們需要將CSS單獨提出,保存在外部,這樣后面的頁面也可以鏈接到這些樣式,如果你頁面需要修改,我們也只需要修改樣式文件就可以。正如下圖所示:
上面我們所說的只是樣式,其實javascript腳本也和CSS樣式是同一樣的道理。圖文并說,我最終想表達的意思是“在制作web頁面中,盡量將你的CSS樣式和javascript腳本單獨放在一個文件中,然后通過鏈接的方式引用這些文件,這樣做的最大好處是,方便你的樣式和腳本的管理與修改。”
我們在寫HTML時總是需要標簽的層級嵌套來幫我們完成HTML的書寫,但這些HTML的嵌套是有一定的規則的,如果要細說的話,我們可能要用幾個章節來描述,那么我今天這里要說的是,我們在寫HTML時不應該犯以下這樣的超級錯誤:
上圖的結構我們是常見的,比如說首頁的標題,那么我們就應該注意了,不能把“<h1>”放在“<a>”標簽中,換句話說,就是不能么塊元素和在行內元素中。上面只是一個例子,只是希望大家在平時的制作中不應該犯這樣的超級錯誤。
首先我們一起來看一個實例的截圖:
上圖明顯是一個導航菜單的制作,在上圖的實例中:有一個“div#topNav”包住了列表“ul#bigBarNavigation”,而“div”和“ul”列表都是塊元素,加上“div”此處用來包“ul”根本就沒有起到任何作用。雖然“div”的出現給我們制作web頁面帶來了極大的好處,但我們也沒有必要到處這樣的亂用,不知道大家平時有沒有注意這樣的細節呢?我是犯這樣的錯誤,如果你也有過這樣的經歷,那么從今天開始,從現在開始,我們一起努力來改正這樣的錯誤。
有關于如何正確的使用標簽,大家感興趣的話可以點擊:Divitis: what it is, and how to cure it.
這里所說的命名就是給你的頁面中相關元素定義類名或者是ID名,很多同學都有這栗的習慣,比如說有一個元素字體是紅色的,給他加上“red”,甚至布局都寫“left-sidebar”等,但是你有沒有想過,如果這個元素定義了“red”后,過幾天客戶要求使用“藍色”呢?或者又說,那時的“left-sidebar”邊欄此時不想放在左邊了,而是想放在右邊,那么這樣一來我們前面的命名可以說是一點意義都沒有了,正如下面的一個圖所示:
那么定義一個好的名就很得要了,不但自己能看懂你的代碼,而且別人也能輕松讀懂你的代碼,比如說一個好的類名和ID名“mainNav”、“subNav”、“footer”等,他能描述所包含的事情。不好的呢,比如前面所說的。
如果想了解更多這方面的知識,可以點擊:
我們在設計菜單時,有時要求所有菜單選項的文本全部大寫,大家平時是不是直接在HTML標簽中就將他們設置成大寫狀態呢?如果是的話,我覺得不好,如果為了將來具有更好的擴展性,我們不應該在HTML就將他們設置為全部大寫,更好的解決方法是通過CSS來實現:
大家平時制作web頁面時不知道有沒有碰到這樣的問題,就是整站下來,使用了相同的布局和結構,換句話說,你在頁面的布局上使用了相同的結構,相同的類名,但是突然你的上級主管說應客戶的需求,有一個頁面的布局需要邊欄和主內容對換一下。此時你又不想為了改變一下布局而修改整個頁面的結構,此時有一個很好的解決辦法,就是在你的這個頁面中的“<body>”中定義一個特殊的類名或ID名,這樣來你就可以輕松的達到你所要的需求。這樣的使用,不知道大家使用過沒有:
給“<body>”定義獨特的類和ID名稱是非常強大的,不僅僅是為了像上面一樣幫你改變布局,最主要的是有時他能幫你實現頁面中的某一部分達到特殊效果,而又不影響其它頁面的效果。為什么有這樣的功能,不用我說我想大家都是知道的。因為每個頁面的內容都是“<body>”的后代元素。
如果想了解更多這方面的知識,可以點擊:
人不免會出錯,我們編寫代碼的時候也是一樣的,你有時候總會小寫或多寫,比如說忘了關閉你的元素標簽,不記得寫上元素必須的屬性,雖然有一些錯誤不會給你帶來什么災難性的后果,但也不免會給你帶來你無法意估的錯誤。所以建議您寫完代碼的時候去驗證你一下你的代碼。驗證后的代碼總是比不驗證的代碼強:
為一有效的驗證你的代碼,我們可以使用相關的工具或者瀏覽器的插件來幫助我們完成。如果你的代碼沒有任何錯誤,W3C驗證工具會在你們面前呈現綠色的文字,這樣讓你是無比的激動人心,因為再次證明了你寫的代碼經得起W3C的標準。
如果想了解更多這方面的知識,可以點擊:
這是一個很少見的錯誤情況,因為我想大家寫頁面都不會把邏輯順序打亂,換句話說,如果可能的話,讓你的網站具有一個先后邏輯順序是最好的,比如說先寫頁頭,在寫頁體,最后寫頁腳。當然有時也會碰到特殊情況,如何頁腳部分在于我們代碼的邊欄以上,這可能是因為它最適合你的網站設計需求,這樣或許是可以理解的,但是如果你有別的方式實現,我們都應該把頁腳是放在一個頁面的最后,然后在通過特定的技術讓它達到你的設計需求:
上面我們一起討論了多個如何讓你開始寫一個整潔的HTML代碼。從一個項目的開始,這一切都是非常容易的,但是如果需要你去修復一個現有的代碼,那多少都會有一定的難度。上面說這么多主要是告訴您將要如何學習編寫一個良好的、整潔的HTML代碼,并且一直堅持這樣的編寫。希望讀完這篇文章垢,在你的下一個項目中,你能從頭開始,堅持寫一個整潔的HTML代碼。希望大家喜歡這樣的教程。最后在結束此教程之前,讓我們大家一起來感謝Chris Coyier給我們帶來這么好的經驗之談——《12 Principles For Keeping Your Code Clean》如果你有什么好的經驗,希望與我們一起分享。
#1: 相冊效果
#2: 手風琴效果
#3: 日歷效果
#4: 自定義窗口
#5: 圖片剪切
#6: 翻頁效果
#7: Shadowbox效果
#8: 語法著色
#9: 日歷面板
#10: 仿apple產品展覽
#11: 橫排無限極菜單
#12: (梅花雪)樹控件
#13: 顏色選擇器
#14: (漂亮)祝福墻
#15: 俄羅斯方塊
#16: 數據列表
#17: 經典布局
#18: Mac菜單欄
#19: 編輯器
#20: 簡單選項卡
#21: 滑塊效果
#22: 進度條效果
#23: 拖拉縮放效果
#24: Canvas應用
#25: 模塊定制
#26: 固定元素效果
#27: 版面切換效果
#28: 右鍵菜單
#29: 幻燈片效果
#30: 無縫滾動
#31: 彈出信息提示
#32: UI-template
#33: Suggest
#34: Highcharts
#35: 地區選擇器
#36: Google電吉他
#37: 小球連線效果
#38: 流程圖工具(IE Only)
#39: 羅盤效果
#40: 注冊校驗
element..focus()
// Form : http://www.w3.org/TR/html5/editing.html#focusable
- a elements that have an href attribute
- link elements that have an href attribute
- button elements that are not disabled
- input elements whose type attribute are not in the Hidden state and that are not disabled
- select elements that are not disabled
- textarea elements that are not disabled
- command elements that do not have a disabled attribute
- Elements with a draggable attribute set, if that would enable the user agent to allow the user to begin a drag operations for those elements without the use of a pointing device
- Each shape that is generated for an area element
- …
而除上面以外的元素(比如:div,p)一般都無法直接獲得焦點,那如何處理呢?
// From : http://www.w3.org/TR/2009/WD-html5-20090423/editing.html#attr-contenteditable
User agents must make editing hosts focusable (which typically means they enter the tab order).
// From : http://www.w3.org/TR/2009/WD-html5-20090423/editing.html#attr-tabindex
The tabindex content attribute specifies whether the element is focusable, whether it can be reached using sequential focus navigation, and the relative order of the element for the purposes of sequential focus navigation.
非常推薦使用tabindex = -1 ,基本無副作用??!
// From : http://www.w3.org/TR/2009/WD-html5-20090423/editing.html#attr-tabindex
If the value is a negative integer: The user agent must allow the element to be focused, but should not allow the element to be reached using sequential focus navigation.
綜述,使無法直接獲得焦點的元素獲得焦點的最佳實踐就是:給元素添加tabindex = -1
json對象
var json = {aa:true,bb:true};
var json1 = {aa:'b',bb:{cc:true,dd:true}};
1:js操作json對象
for(var item in json){
alert(item); //結果是 aa,bb, 類型是 string
alert(typeof(item));
alert(ev
ev
}
2:json對象轉化為String對象的方法
1 /**
2 * json對象轉字符串形式
3 */
4 function json2str(o) {
5 var arr = [];
6 var fmt = function(s) {
7 if (typeof s == 'object' && s != null) return json2str(s);
8 return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
9 }
10 for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
11 return '{' + arr.join(',') + '}';
12 }
3:string對象轉化為json對象
function stringToJson(stringValue)
{
ev
return theJsonValue;
}
4:json數組轉化為 String對象的方法(要掉要上面那個方法)
function JsonArrayToStringCfz(jsonArray)
var JsonArrayString = "[";
for(var i=0;i<jsonArray.length;i++){
JsonArrayString=JsonArrayString+JsonToStringCfz(jsonArray[i])+",";
}
JsonArrayString = JsonArrayString.substring(0,JsonArrayString.length-1)+"]";
return JsonArrayString;
}
5 利用json.js json轉string
<script src="json2.js"></script>
<script>
var date = {myArr : ["a" , "b" , "c" , "d"] , count : 4};
var str = JSON.stringify(date);
alert(str);
</script>
Videobox是一個只有6k大小的腳本,用于在頁面中顯示視頻。Videobox使用swfobject來嵌入Flash。視頻可以來自Youtube、Metacafe、Google Video、iFilm和自己設置的Flash。
Panda是一個開源的視頻平臺,能夠處理視頻的uploading、encoding與streaming。所有處理過程都通過REST API完成。Panda設計運行在云計算平臺中,利用Amazon的Web服務群來實現。因此你需要有Amazon Web Services賬號。Panda使用SimpleDB來存儲所有視頻數據和賬號。Panda支持Flash的FLV、h264格式和iphone格式等。Panda使用
采用Adobe Flash與Microsoft Silverlight開發的開源Web視頻播放器。
Xe-VideoGalV3 FX是一個開源的Flash視頻播放器。該播放器能夠展示多部電影中某一畫面的縮略圖,供用戶選擇播放。支持在視頻上添加一個透明的消息提示框。下載FLV文件。調整播放器屏幕大小等。
ToobPlayer是一個輕量級(大約14-8KB)FLV播放器組件。支持圖像預覽,播放窗口大小調整,全屏播放模式,加載狀態條提醒,支持鼠標滾輪播放進度/播放聲音高低,自動重播,時間緩沖。
FlowPlayer是一個開源的Flash視頻播放器。提供所有你可能需要的功能并且這些功能都可以通過JavaScript按你的實際需求進行配置。提供良好的用戶體驗,支持預加載,長時間播放,播放列表,全屏播放模式等。
JCPlayer是一個免費的Flash視頻文件播放器。該播放器支持全屏播放,并且所有功能都完全可自定義包括默認可用的皮膚。
下面我要向你介紹一款非常優秀的Javascript(AJAX) 開發工具:Aptana。應為它實在太棒了,所以我忍不住想向你推薦它。
Aptana中的智能提示稱為 Code Assist,相當于VS中的Intellisense。
看到后面的瀏覽器圖標了嗎?那是瀏覽器兼容性的提示。如果你是一個JS老鳥你應該知道那對開發者來說有多重要。
不僅僅是javascript,智能提示的范圍還包括DOM 1,2 for HTML:
CSS:
看到后面的黃框框了嗎?那是VS里稱為Quick Info的東西。
Doument outline(文檔結構)CSS、HTML、JS統一顯示:
代碼折疊、項目管理這些小菜不用講了,都支持。Aptana還有很豐富的在線文檔,是以wiki形式不斷更新的,當然在連線的情況下你可以在Aptana中直接訪問這些文檔。
最新版的Aptana(0.2.6)已經開始支持Debug了,不過要通過Firefox插件的形式。
Aptana是一個java開源項目(.NET程序員應該捫心自問了吧),現在還在beta階段(從版本號你就可以看出來了)。所以它是跨平臺的。你在windows上運行它可能會覺得有一點點慢(比VS快多了)。其實Aptana的內存占用很少,才2M多,不過JVM...我就不想說什么了。
幸運的是你可以通過javascript擴展它,這里是它的API。
Aptana還有太多讓人驚艷的地方,你一定要自己用過了才知道。
JavaScript調試工具
第一個:Microsoft Script Debugger: 集成在IE中的一款很原始的調試工具,具備基本的調試功能,除了可以用于調試客戶端腳本,還能調試在Microsoft IIS上運行的服務器端腳本。該工具命令窗口是基于文本的,針對VBScript和IE環境進行調試會更加適用。
第二個:Firefox JavaScript Console:可以記錄JavaScript中出現的所有警告和錯誤,診斷出大多數錯誤。工具比較簡單實用。
第三個:Venkman: 一個基于Mozilla的瀏覽器的JavaScript調試環境,是Mozilla瀏覽器的一個擴展。Venkman基于Mozilla JavaScript調試API(js/jsd),js/jsd API 構成了 Netscape JavaScript Debugger 1.1的基礎,Netscape瀏覽器4.x系統都提供了這個調試工具。Venkman是目前比較流行的JavaScript調試工具。
解決方法:
在子網頁設置css如下:
html {
overflow-y:auto!important;
*overflow-y:scroll;
}
這段最重要的一點是設置overflow-y為scroll,這樣強制出現垂直滾動條的話,水平滾動條就不會顯示出來了,但如果寬度超出過多,水平滾動條還是會超出,這時可以考慮設置:overflow-x:hidden;,但相應的,這樣用戶就無法滾動子頁面了。
之所以要加overflow-y:auto!important;,是因為IE7中已沒有這個bug,并且firefox也能認到overflow-y這個據說是IE的私有屬性……,所以我們還要把overflow設回來。
上面這個方法還可以有改進的地方
既然只有IE6有這個BUG那就只針對IE6寫就行了
html {_overflow-y:scroll;}
_下劃線是IE6專有的 這樣就又省了一行代碼 又提高了效率
loadJSON指定一個文件路徑就可以了。。
loadJSONObject有兩種:
第一種在服務端設定返回協議,返回一個JSON對象
從JS數組加載
文章出處:飛諾網(www.firnow.com):http://dev.firnow.com/course/3_program/java/javashl/20090820/169311_4.html
tree.loadJSArrayFile(FILE);//for loading from file
tree.loadJSArray(ARRAY);//for loading from array object
這兩個函數都有些容錯性的,比如"123abc"會變成123.
如果樓主希望更準確一些,其實可以判斷一下,然后用eval,像這樣
不過也可以使用這樣的方法:
var a = "234" ;
a = a.replace(/(^[\\s]*)|([\\s]*$)/g, "");
if( a !="" && !isNaN( a ) )
{//如果是數字
a = eval( a )
}
else
{//如果不是數字
a = null
}
javascript有兩種數據類型的轉換方法:一種是將整個值從一種類型轉換為另一種數據類型(稱作基本數據類型轉換),另一種方法是從一個值中提取另一種類型的值,并完成轉換工作。
基本數據類型轉換的三種方法:
1.轉換為字符型:String(); 例:String(678)的結果為"678"
2.轉換為數值型:Number(); 例:Number("678")的結果為678
3.轉換為布爾型:Boolean(); 例:Boolean("aaa")的結果為true
從一個值中提取另一種類型的值的方法:
1.提取字符串中的整數:parseInt(); 例:parseInt("123zhang")的結果為123
2.提取字符串中的浮點數:parseFloat(); 例:parseFloat("0.55zhang")的結果為0.55
3.執行用字符串表示的一段javascript代碼:eval(); 例:zhang=eval("1+1")的結果zhang=2