seo優化排名, seo搜索引擎 | 九月 2009
點擊這裡→ 港元980即時開設最強網上商店,無任何隱藏成本

seo優化排名, seo搜索引擎

網路推廣,網站排名,網站推廣,搜索網站,seo服務

JavaScript天書--如何儘量避免問題?

clock 九月 30, 2009 23:30 by author Administrator

如何儘量避免問題?

我們需要做的就是確定一些彈出視窗按照道德規範使用的金規則:

     確保腳本不可用的時候引發鏈結可以適當的降級,

     一定要顯示狀態欄,

     允許內容可以滾動查看:無論是視窗大小調整還是允許捲軸顯示,或者兩者同時具備

     不要打開大小超過640×480的視窗

通過限制彈出視窗的大小,你就可以保證彈出視窗比用戶的正常打開視窗要小,這就讓用戶意識到自己打開的是一個新的視窗。

解決方法

下面是根據上面的基本規則規定的一個彈出視窗: 

除了規定視窗的大小,上面的腳本還拒絕創建內容可以滾動的彈出視窗,如果你不詳細規定“scroll”“resize”或者“both”,默認的設置是both 

         Ternary Operator

這個腳本使用了ternary operator例對每一個溢出的選項進行評價,ternary operator使用?和:來區分一個評價的兩種可能的結果,它的作用與一對ifelse的作用相類似。看下面的一段編碼:


這段編碼類似於下麵的:


圓括號不是必需的,但是你會發現使用了圓括號讀起來更加的方便。

一旦你將彈出視窗的功能確定了,你可以通過多種方式彈出這個視窗。比如,你可以使用常規的鏈結:


如果腳本不可用,有了上面的規定之後它就會跟其他鏈結一樣,但是如果腳本可用,那麼腳本就可以引發點擊並且讓那個彈出視窗彈出。Handler返回的值根據視窗實際上是否被打開而有所不同,阻止了彈出視窗的流覽器會像常規那樣跟隨鏈結;


總的來說,如果你有一個腳本要求創建視窗,你可以直接通過URLcall makePopup功能:


如果你需要在之後的腳本中關閉視窗,你可以通過close的方法做到:


討論

Window.open的方法可能會有一些論點——除了URL和視窗的名稱——詳細說明了視窗是否應該有特殊的裝飾,比如功能表欄,工具欄或者位址欄,這些爭論隨著逗號分隔的字串而轉到window.open的第三個論點:


makePopup功能中,功能表欄(menubar)、工具欄(toolbar)以及位置(location)都沒有,因為這些元素對於彈出視窗來說很少會用到——這些都是導航工具。彈出視窗最常用於一頁的分界,或者那些歷史導航不能用的情況,或者空白網站的登錄視窗。

如果必要的話,你可以改變那些選項,但是狀態選項應該永遠是選擇yes,因為如果你關閉了這個選項會使一些功能不可用。(我知道,我之前曾經提起過,但是我現在還再說一遍,因為這點很重要!)

可調節(resizable)選項可能不會有任何的效果——在有些流覽器中是這樣的,無論是作為一種設計或者是做為用戶設置的選項,不可能創建不可調節大小的視窗,即使你這個選項選擇的是:no。事實上,在Opera 8中,是不能創建用戶自定義大小視窗的。這個規定本身並不特別的突出,但是它證明了一點,就是創建視窗的各種選項並不是都可用的。

一旦一個視窗打開之後,你可以使用focus的方法來讓這個視窗成為中心焦點,這並不是總是需要的——通常,都是默認的——但是,當你同時在處理多個視窗的時候,這種技巧還是有用的。


或者,你可以打開一個彈出視窗,但是原來的那個視窗仍然是主要的視窗(因此就要求一個所謂的popunder),你可以通過blur的方法將主要視窗從一個視窗轉向另一個視窗:


但是,那樣的話,你不知道下一個focus的視窗會是哪一個,所以,重新focus原來的那個視窗是最可靠的:




推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:

JavaScript天書--Windows及Frames(使用彈出視窗)

clock 九月 28, 2009 19:24 by author Administrator

本章我們將講解簡單的windowsframes操作,包括打開彈出視窗(popup),在frame之間進行操作,以及找到網頁的滾動位置。

 

很多人認為視窗(window)操作就像是黑暗面,他們認為window是用戶GUI的一部分,而不是文檔(document),而JavaScriptdocument腳本語言,所以它與視窗操作沒有任何的關係。

 

我也會認同這種說法,但是我知道這種觀點有它的局限性。如果你的顧客要求你做一些特殊的事情,你又不能勸說他改變主意,或者你可以自由的拒絕這項工作。在這章的內容中,我們將結合使用中可能出現的問題講解一些實用的windowframe操作技巧。

 

注意,有一些限制,視窗腳本的一些變數是非常不好處理的。我們不會涉及一些難纏的操作,比如關閉或者修改用戶的默認視窗,在螢幕中移動視窗或者打開全屏或者無邊框視窗。這些操作都搞壞了JavaScript的名聲。

 

這一章的大部分內容我們都會密切關注視窗的操作方法。包括不同流覽器,不同的方法,其中大部分方法都在JavaScript標準化之前已經開始使用了。

 

我們將處理很多code branch,但是我們會通過使用object detection避免討厭的流覽器嗅探。

使用彈出視窗

 

你是否應該使用彈出視窗?我得到的經過深思熟慮的答案就是:儘量避免使用。彈出視窗因為推銷商的使用而獲得了很不好的名聲,但是請求式的彈出視窗可以是良好使用的壁壘。

 

我不會說彈出視窗永遠都是不合適的,但是我會說它們很少是合適的。但是有的時候,用彈出視窗來打開一個新的視窗是最好的解決方法:網路調查可能就是一個例子,因為採取這種方式可能會讓內容看起來更加接近人;DHTML遊戲也是一個例子,因為查看視窗的大小應該有所限制。

 

我將通過討論彈出視窗帶來的問題而證明我的觀點,之後我會給你一個儘量避免這些問題的使用方法。

 

彈出視窗怎麼了?

 

常見的彈出視窗初夏的一個最主要的問題就是它們常常忽略了用戶的需求——它們只滿足設計者的需要。結果?我們都見過:

伴隨鏈結彈出的視窗,雖然那些鏈結在腳本不可用的時候沒有任何的用處.

沒有狀態欄的彈出視窗。你無法清楚文檔是已經下載了還是已經安裝了,或者,還是正在下載過程中,等等……

彈出視窗讓用戶無法調整視窗的大小,以及沒有捲軸的彈出視窗,用戶無法查看可能溢在視窗外的內容

無邊框的視窗或者是滿屏顯示的彈出視窗。

 

這些問題不僅僅是使用的問題,還有可接受性的問題。比如,讀者可能在沒有通知有新視窗要打開的前提下就有新視窗突然打開了,如果他們想要返回流覽器歷史那肯定會引起麻煩,那些全屏打開的視窗也會給讀者帶來麻煩:我們可能都習慣了用任務欄來監視打開窗戶,但是如果打開的是個全屏的視窗,我們可能就不知道該如何操作了。

 

如果你計畫使用彈出視窗,你就應該避免這類問題,並且注意這些問題帶給讀者的影響,你應該讓彈出視窗更加友好。

 

同樣,應該記住,從開發者的角度來講,彈出視窗並不一定會工作:大多數的流覽器都有阻止彈出視窗選項,在那樣的情況下,這種阻止會讓用戶對你的彈出視窗不會有任何的反應。

 

在腳本不支援的情況下你可以這樣做:確保彈出視窗失敗的情況下會有替補的方法。或者,你可以讓編碼打開一個視窗,然後查看它的關閉屬性,看看是否起效。

 

但是這些不能保證適用於所有的流覽器以及所有的彈出視窗攔截設置,在這樣的情況下,你最好避免使用彈出視窗。

請看下一節--<如何儘量避免問題?>  

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:

JavaScript天書--給一個元素增加或者去掉多個class

clock 九月 27, 2009 19:31 by author Administrator
給一個元素增加或者去掉多個class

綜合多個class是一個非常有用的CSS技巧。它通過允許給一個元素增加不同的style而提供了幾種基本的遺傳方式,這就讓你可以在一個網站中混合不同的效果。這點在突出元素的時候尤其有用:可以添加一個class突出一個元素,而不會影響其他的視覺效果。如果你在JavaScript中賦予class,你需要小心自己不會覆蓋先前的class

 解決方法

通過元素的className屬性可以查看任何元素的class。你可以讀也可以寫這個元素的屬性。因為它就是一個字串,className最困難的就是你需要根據它使用的語法來表示不同的class

 

一個元素的classname屬性中的class name通過空格分開,第一個class name前面沒有其他的name,最後一個name後面沒有其他的class name。這就允許你可以很自由的增加一個class,只需要添加一個空格然後一個新的class name就可以了。但是,你應該避免添加一個已經存在了的class name,同時應該避免在第一個classname值前面添加空格,如果添加了空格在Opera 7中會出現錯誤:

首先,addClass創建了一個常規的表達類型,它然後用這個類型與檢驗新創建的classname值。如果class name不是已經存在的,我們就會檢索一個空的classname值,或者我們就在原來的classname後面增加一個空格然後加上一個新的class name

   分開class

有些查找class的常規表達使用boundary special character\b)來分開class,但這並不適用於所有的有效的class名稱,比如那些包含連字元的名稱。

 

使用常規表達類型去掉一個class的過程與我們之前使用的增加class的過程不同,但我們同樣需要進行檢查:

removeClass執行之後,它會去掉所有的trailing space(拖尾空格,我們將一個classname從多個classname中去掉會產生trailing space),然後重新賦予目標className

 總結

在這章的內容中,我們介紹了你需要掌握的操作DOM所必需的基本但是很強大的工具。重要的是你需要理解DOM——也就是你在一個流覽器中看見的所有內容下面的骨架。知道如何去創建、如何去編輯以及如何刪除DOM的部分內容對於理解我們要講解的其他內容都是很關鍵的。一旦你掌握了這些技巧,你就有希望成為明日的專業JavaScript程式師。

 

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:

JavaScript天書--通過一個特殊的屬性值查找所有的元素

clock 九月 26, 2009 15:52 by author Administrator
通過一個特殊的屬性值查找所有的元素

查找具有某個共同屬性的所有元素可能是非常困難的事情,比如,你需要修改具有相同class或者title的所有元素。

解決方法

為了找到具有某個屬性值的元素,我們需要對所有的元素進行檢查。這樣做非常的麻煩,我們不應該採取這種方法。如果你希望查找具有type=”checkbox”的所有input元素,你最好將你的檢索範圍限制在input元素內:

然後檢索它們的type。我們說的這個解決方法中,在需要查找具有不同types的一系列元素師,getElementByAttribute是最好的。

 

查找一個網頁上所有元素的最簡單的方法就是通過getElementsByTagName”*”)返回的collection進行迴圈。這個方法唯一的一個問題就是IE5.0以及IE5.5不支持。幸運的是,這些流覽器支持document.all屬性,這就包含了所有的元素。getElementsByAttribute通過簡單的code branch就可以處理這件事情,然後再查找具有某個屬性值的元素:

 

GetElementsByAttribute中的很多變多可以處理流覽器間的差異。如果需要查找的屬性是class或者for,那就需要一些特殊的技巧。在查找class屬性的時候,如果一個元素被賦予了多個classfunction會檢索這些所有的class看看是否與需要的值相匹配。

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:

JavaScript天書--讀和寫一個元素的屬性

clock 九月 25, 2009 11:06 by author Administrator
讀和寫一個元素的屬性

HTML元素最常用的部分就是它的屬性——它的idclasshreftitle或者包含在HTML標籤中的其他資訊。JavaScript不經可以讀這些值,而且可以寫。

解決方法

讀寫元素的屬性有兩種方法,getAttribute允許你讀一個值的屬性,setAttribute則允許你可以寫。

 

看下麵的HTML

我們可以這樣讀一個元素的屬性:

 

變數anchorId是“antares”,變數anchorTitle的值是“A far away place”。

要改變超連結的屬性,我們使用setAttribute,改變屬性的名稱以及我們希望改變的值:

變數newTitle的值將不再是“not that far away”。

討論

 

從自由的Netscape到現在嚴格界定的時代,DOM標準與HTML的接入改善了很多。其中一個最大的改善就是DOMHTML屬性之間的映射。

 

當一個文檔解析成DOM格式後,元素就會增加特殊屬性節點。這些節點並不是那個元素的子元素:它們只有通過上述的兩種方法才可以接入。但是,做為原始DOM的始祖(稱為DOM 00的意思就是這些特徵都在標準化之前),目前的DOM規格包括專門針對HTML的很多功能。另外,屬性作為一個元素的特徵也是可以接近的。所以,一個超連結的href屬性通過link.getAttribute(“href”)以及link.href是可以接入的。

 

簡短語法不僅看起來更簡潔而且讀起來更方便:在有些情況,簡短也是有必要的。IE 6以及更低版本不允許通過setAttribute來對一個元素的顯示特徵進行更改。所以任何使用setAttribute對一個元素的classid或者style進行的更改都不會顯示出來。為了讓你的改動生效,你必須通過元素節點的特殊屬性來進行設置。

 

讓事情更加混亂的是,不同流覽器閱讀某些特性是返回的不同的值,最明顯的就是Konqueror。如果某個屬性不存在Konqueror會返回null作為屬性特性,但是其他的流覽器返回的都是空字串。在某些情況下,有些流覽器會返回link.getAttribute(“href”)作為絕對URL(比如:"http://www.example.com/antares.html " ),而其他的會返回實際的屬性值(比如“antares.html”),在這種情況下,用dot屬性更加安全,因為它返回的都是絕對URL

 

那麼,怎樣解決這些問題呢?

 

基本的原則就是:如果你確信一個屬性被規定了值,那你可以很安全的使用dot property方法,如果你不確定,你首先應該使用DOM的一個方法確定它是賦了值的,然後再用dot property方法來獲得它的值。

 

閱讀未經驗證的屬性,使用如下編碼:

這就確保屬性是存在的,而不是null

寫未經驗證的屬性,使用如下的編碼:

這段編碼手下保證屬性被正確創建了,然後,它保證如果屬性影響了這個元素的顯示,對於IE不會有影響。

 

但是有幾個例外。這些必須的屬性中最突出的就是styleclass,任何元素都會有這兩個值,因此,你可以立即將它們指定為dot properties(分別用element. styleelement.className)。

 

Class是比較狡猾的兩個屬性之一,因為classJavaScript本身包含的一個詞。作為專利,它被寫作element.className,但是使用getAttribute/setAttribute,我們寫element.getAttribute(“class”),但是不包括在Internet Explorer中,在IE中我們仍然使用element.getAttribute(“class Name”)

 

我們需要小心的其他屬性就是一個labelfor屬性。它遵循和class同樣的屬性,但是它的property formhtmlFor。使用getAttribute/setAttribute,我們寫element.getAttribute(“for”),但是在IE中,它是element.getAttribute(“htmlFor”)

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:

JavaScript天書--去掉一個元素或者一個文本節點

clock 九月 25, 2009 10:49 by author Administrator

去掉一個元素或者一個文本節點

如果一個元素已經不再有用了,我們就需要把這個元素去掉。你可以使用JavaScriptDOM中去掉任何元素。

解決方法

Remove Child可以將任何子節點從它的父節點下去掉。

首先看一下如下的HTML

我們可以使用remove Child將一個超連結從它的parent paragraph去掉,如下:

變數removeChild是一個元素的reference,但是那個元素不會在DOM中出現:它只會在記憶中出現,正像是我們剛剛使用create Element創建了這個元素一樣。

這就允許我們可以講這個元素重新放置在網頁中的任何位置,或者,我們可以讓這個變數從這個腳本中消失,通過上面的編碼,DOM的結果是:

當然,你不需要將removeChild返回的值作為一個變數,你可以完全忘掉這個元素:

討論

如果你刪除的元素的子元素你還希望保留(就是你想保留子元素但是希望把這個子元素的父節點去掉),在你刪除父元素的時候你就需要想辦法保留這些子元素。你可以通過我們上面提到過的insertBefore來進行保留,首先刪除它們,然後將它們再插入合適的位置。

 

下面一段HTML包含多個子元素:

我們可以對這段的childnodes集合進行迴圈,並且在刪除父元素之前重新安排這些子元素的位置:

 

這頁的DOM現在就是這樣子的:

 

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:

大量免費電子書下載

clock 九月 21, 2009 13:17 by author Administrator

大量免費電子書下載,內文使用免費PDF檔案,歡迎你下載並傳閱給你的朋友.

如何从Web 2.0获利.pdf (422.09 kb)

52項網上拍賣技巧.pdf (1.26 mb)

怎樣才能讓Flash在搜尋引擎中獲得索引?.pdf (3.67 mb)

如何做到有創造性.pdf (3.00 mb)

製造高點擊率內容和郵件的templates(words marketing).pdf (2.37 mb)

如何賺到網路上的第一筆1000美元.pdf (3.95 mb)

出口商的網站規格.pdf (523.35 kb)

個人軟體發展.pdf (2.27 mb)

免費網上資源.pdf (5.40 mb)

分裂測試優化電子商務業務.pdf (6.57 mb)

如何用幾百港元創辦網上生意.pdf

traffic explosion引爆你的瀏覽量.pdf (2.88 mb)

viral_copy像病毒一樣複製,用文字交換瀏覽量.pdf (2.19 mb)

病毒式行銷.pdf (2.61 mb)

博客寫手大搜尋.pdf (2.72 mb) 

九種錯誤讓你的網路行銷陷入癱瘓.pdf (664.75 kb)

萊鳥軟體發展寶典.pdf (2.52 mb) 

網路行銷.pdf (1.70 mb)

網上企業家成功的秘密.pdf (2.63 mb) 

郵件投遞技巧.pdf (2.21 mb)

專家如何建立他的帝國—coaching _報告.pdf (1.14 mb)

關鍵字廣告策略 .pdf

專訪網絡名人AlexMandossian.pdf

網站聯盟策略.pdf

開設博客BlogSetup.pdf

ClickBank行銷.pdf

網絡實驗室.pdf

CSS應用指南.pdf

如何倍增銷售.pdf

網絡更多優勢.pdf

InternetFreeResources網上免費資源.pdf

Javascript指南.pdf

MembershipSite 建構收費會員網站.pdf

MoreoOnlineRevenue 更多網絡收入 .pdf

離線行銷 offlinemarketingmeasures-.pdf

OnlineEmpire 網上王國.pdf

OnlinePR 網上公關_.pdf

OnlineReport 網絡報告 .pdf

OnlineWeb 網站提示.pdf

如何用PHP和MySQL建構數據庫 .pdf

RevenueOnline 網上盈收.pdf

StartInternetBusiness 開設網上生意 .pdf

賺錢的文字.pdf

人工智能.pdf

Google Android 手機程式設計.pdf

簡體版本的電子書下載

建立网上王国

网站联盟教程

博客写手大搜寻.pdf (2.70 mb)

电子商务的离线营销术.pdf (3.09 mb)

高级课程:社会书签的秘密.pdf (3.01 mb)

将词语转换成利润:5个对销售来说致命的写作错误.pdf (3.62 mb)

九种错误让你的网络营销陷入瘫痪.pdf (649.78 kb)

开始你的博客职业生涯吧.pdf (2.20 mb)

网络公关.pdf (3.39 mb)

网络营销.pdf (1.67 mb)

网上企业家成功的关键.pdf (2.60 mb)

像病毒一样复制:用文字交换浏览量.pdf (2.15 mb)

引爆你的浏览量.pdf (2.84 mb)

邮件投递技巧.pdf (2.19 mb)

专家如何建立他的帝国—coaching报告.pdf (981.50 kb)

人工智能.pdf

Google Android 手机程式设计.pdf

PDF電子書中採用一個免費的微軟辦公室軟件轉化器轉換成PDF,因為是免費,所以內含該開發商的水印。我們特意採用這個方法為的是將Copy & paste的難度加大,盡量避免被抄。

 

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


 

第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:

JavaScript天書--流覽文檔物件模型 [改變元素的類型]

clock 九月 20, 2009 15:50 by author Administrator

改變元素的類型

 

你的順序列表有沒有給人一種無序的感覺?用一點JavaScript的只是,就可以完全的改變一個元素的類型,但是保留其子節點的結構。

 

解決方法

改變元素的類型沒有直接、簡單的方法。要想改變,你需要採取一點小技巧。

 

假設我們希望將這段改變成div

我們需要創建一個新的div,將每段的子節點移入,然後用新的節點交換舊的節點:

這裏唯一陌生的一行就是每一段的子節點都有一個克隆(clone),cloneNode的方法會複製完全相同的節點,通過這種方法,我們將某個元素的所有子節點連同這個元素一起進行了複製。通過cloneNode,我們可以在新的div中對原來那個元素的子節點做了鏡像,複製完成之後我們就可以去掉這段。

 

在有些情況下,複製節點是有效的,但是還有一個更簡單的方法也可以解決這個問題。我們可以將現在這段的子節點轉到一個新的div.DOM節點一次只能屬於一個父元素(parent element),所以,將節點加入到div同時將它們從段落中去掉:

   小心改變DOM的節點結構

DOM中有改動的時候,集合(collection)中的元素(element)會自動更新——即使在改動出現之前你將那個集合拷貝到了一個變數,它也會自動更新。所以,如果你從DOM中去掉一個元素,那這個元素的鏈結也會被從這個集合中去掉。這就會改變collection的長度以及這個元素去掉之後顯示的任何元素的索引。

 

當進行影響DOM節點結構的操作時——比如將一個節點轉到一個新的父元素中——你需要仔細的進行操作。上面的編碼使用的是while迴圈,它只能到達第一個子節點,因為每一次中心調整一個子節點的時候,childNodes集合的長度都會變化,集合中的元素也會隨著變化。計數變數的for迴圈無法正確的處理所有的子節點,因為它的假設是集合中的內容沒有變化。

 

討論

將一個元素的屬性複製到它的替代元素上沒有簡單的方法。如果你想讓新的元素仍然具有相同的idclasshref等等特徵,你需要手動的複製這些值:

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:

JavaScript天書--流覽文檔物件模型 [ 創建元素和文本節點]

clock 九月 19, 2009 12:44 by author Administrator

創建元素和文本節點

JavaScript沒有修改DOM中現成元素的能力,它只能創建新的元素並且將它們放在一個網頁中的任何位置。

 

解決方法

creatElement是允許你創建新元素的一個比較合適的方法。爭議只有一點——那就是你希望創建的元素的類型——並且返回新創建的元素的鏈結:

NewAnchor變數是一個新的a 元素,可以插入到網頁中。

通過XML MIME類型對文檔中的namespace進行說明

如果你的JavaScript變成是用於MIME類型application/xhtml+xml(或者其他類型的XML MIME類型)的文檔,你應該用createElementNS的方法,而不是用createElement

這種區別適用於很多DOM方法,比如removeElement/removeElementNS以及getAttribute/getAttributeNS,但是,在我們的講解中,我們不會用這些方法的namespace-enhanced版本。

 

Simon Willison提供了在他的網站上同時使用JavaSxript和不同MIME類型的一個簡單的說明。

 

一個元素中的文本通常是那個元素的子文本節點,所以應該單獨創建。文本節點與元素節點不同,所以它們有自己的創建方法,create TextNode

如果你修改一個現成的文本節點,你可以通過nodeValue屬性來接入它包含的文本。這就允許你獲得一個文本節點內部的文本:

OldText變數的值現在時“monoceros“,textNode內部的文本現在時“pyxis”。

 

你可以通過appendChild方法插入一個元素節點或者是一個文本節點。這種方法會將新的節點放在元素節點的所有子節點後面。

 

考慮如下的HTML片段:

我們可以使用DOM的方法來在段落的結尾創建和插入另一個鏈結:

Newchild變數的值將是新插入元素的reference

如果我們在這段編碼execute into HTML編碼後翻譯DOM的狀態,可以這樣做:

我們並沒有明確說明新元素的屬性,所以當時它不會指向任何地方。在接下來的“讀和寫某個元素的屬性”一章中我們將詳細的進行說明。

討論

一個新的元素或者文本節點插入一個網頁中有三種基本的方法,你使用哪種方法取決於你希望新的節點插入哪里:作為一個元素的最後一個子節點,或者在另一個節點之前,或者替換某一個節點。增加一個元素所謂最後一個子節點的方法上面已經講過了。你可以通過insertBefore方法來在一個已經存在的節點之前插入一個節點,你也可以使用replacechild來替換一個父節點的子節點。

為了使用insertBefore,你需要指向你計畫插入的節點,以及希望插入在其前面的那個節點。看看如下的HTML編碼:

我們可以通過insertBefore在一個已經存在的節點前面插入一個新的連接:

NewChild變數指向新插入的元素。

如果我們希望在我們進行上面的操作完成之後,將DOM狀態翻譯成HTML,可以按照如下的操作:

我們可以用replacechild來完全替代已有的連接:

DOM應該是如下格式的:

 

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:

JavaScript天書--流覽文檔物件模型 [ Accessing Elements(接入元素)]

clock 九月 18, 2009 16:35 by author Administrator

流覽文檔物件模型

流覽器通過DOM允許JavaScript接入。

DOM可以被認為是一個包含各種連接結(node)的樹,HTML文檔中的每一個標籤都由一個節點來表示,這些結都叫做element node。還有幾種其他類型的節點,其中最有用的就是文檔節點(document node),文本節點(text node, 屬性節點(attribute node)。文檔節點表示文檔本身,而且是DOM這顆樹的根,文本節點表示兩個標籤之間包含的文字,屬性節點表示某個部分開放標籤的屬性。考慮如下的HTML頁面結構:

這一頁的DOM可見圖5.1

 

每一頁都有一個文檔節點,但是它的派生物都是從文檔本身的內容衍生的。通過element nodetet node以及attribute node的應用,網頁上的所有資訊可以通過JavaScript接入。

 

DOM並不限於HTMLJavaScript。下麵是W3C DOM網站的解釋:

文檔物件模型(DOM)是一個平臺——是一個與語言沒有關係的介面規範,它允許程式和腳本動態接入並且更新內容、結構和文檔的類型。

 

所以,雖然通過DOMJavaScriptHTML接入是最常用的操作,但是通過本章的內容,你可以將DOM應用于很多種程式語言的文檔類型。

 

為了讓你成為“DOMain的掌握者”,在這一章中,我們將講解如何在一個網頁中找到你想要找到的element,然後改變它,重新安排它或者完全的去掉它。

Accessing Elements(接入元素)

接入後就允許控制,控制就是權利,你就是一個有權利的程式師,對麼?所以,你需要接入一個網頁中的所有內容。不幸的是,JavaScript僅僅通過幾種方法和特性來讓你接入一個網頁中的所有元素。

 

解決方法

雖然可以像流覽地圖一樣流覽HTML文檔,但是這是發現一個元素的一個效率很低的方法,因為這種方法要求大量的編碼,文檔結構的任何變化通常都會要求你重寫腳本。如果你想快速並且簡單的找到什麼內容,你的方法就是document.getElementById

 

假設你能在正確的地方做上合適的標記,getElementById可以通過它的id屬性值來讓你快速接入任何元素。比如,假設你的網頁包含如下的編碼:

你可以使用a元素的id屬性來直接介入這個元素本身:

變數elementRef的值不會指向a元素——任何你對elementRef的操作都會影響那個超連結。

 

對於某個特定的元素來說,getElementById是好的,但是有的時候,你想要處理一組元素,為了基於它們的標籤名稱(tag name)找到這組元素,你可以使用getElementsByTagName

 

正如它的名稱,getElementsByTagName,它可以通過tag name返回所有的元素。假設我們有這樣一段HTML編碼:

我們可以收集所有的超連結,如下:

現在,anchors這個變數的值就是a元素的集合(collection)。集合有點像array,集合的每一條都用中括弧括起來,而且數字從0開始。getElementsByTagName返回的元素根據它們的源順序排序,如下:

通過這種結合,你可以重複這些元素並且對它們進行操作,比如根據元素的節點className屬性來對它們進行分類:

getElementById不同,getElementByTagName對於每一個單獨的元素節點都有效。你可以通過讓getElementByTagName現在在某類特定的元素上來縮小範圍。getElementByTagName就會只返回相應分類的元素。

 

如果我們有兩個列表,但是只想給其中的一個列表創建一個新的分類,我們可以通過getElementByTagName在他們的父列表(parent list)上定位那些a元素:

為了定位stars的列表,我們需要獲得parent ul element,之後就可以讓getElementsByTagName直接執行:

StarsAnchors變數的值是stars無序列表中a元素的集合,而不是整個網頁中所有a元素的集合。

   DOM 0 Collections  

HTML文檔中很多特殊的元素甚至可以通過更加直接的方式接入。一個文檔的body element可以通過document.body接入,document.forms中可以找到所有一個文檔中所有的表格。一個文檔中所有的圖片都可以在document.images中找到。

事實上,在DOM按照W3C標準化之前這些就已經有了,一般稱為DOM 0 properties

 

因為這些特徵的執行並不是標準化的,所以有的時候在流覽器中這些集合可能會不可靠,早期版本的流覽器,比如Mozilla流覽器(即Firefox)就不支持XHTML文檔的這些集合。

 

如今的流覽器對這些功能的支持都做的非常的好,但是如果你確實遇到了困難,你可以試著用getElementsByTagName的方法來接入相關的元素。而不是用document.body。比如,你可以使用:

討論

如果你確實需要通過元素(element)來接入DOM hierarchy element,每個節點都有幾個屬性可以讓你接入相關的節點:

node.childNodes:每個特定節點的子節點按照源順序的集合,包括元素和文本節點;

node.firstchild:某個特定節點的第一級子節點;

node.lastchild:某個特定節點的最後一級子節點;

node.parentnode:某個特定節點的父元素;

node.nextsibling:文檔中與某個特定節點具有同一個父節點的下一個節點;

node.nextsibling:文檔中與某個特定節點具有同一個父節點的前一個節點;

 

如果某個節點不存在上述的其中一個特性(比如,一個父節點的最後一個節點可能沒有下一個同父節點),其返回的值就是null

 

看下面的例子:

ID star2的列表可以使用下面任何一種表達:

   空白節點(whitespace nodes

有些流覽器會產生一些whitespace nodeswhitespace nodes是僅包含空白(標號/tabs,空格/spaces,新的一行/newlines)的文本節點,目的就是幫助編碼確定格式。

 

當你通過上述的方法來逐一節點來對DOM進行分析的時候,你需要保留這些whitespace nodes。通常,這就意味著你分析的這個元素節點不僅僅是一個空白節點。

 

有兩種方法查看一個節點是否是一個元素節點(element node)或者是一個文本節點(text node)。文本節點的Nodename永遠都是“#text”,元素節點的nodename是元素類型的。在區分文本節點和元素節點的時候,更容易檢查nodeType屬性。元素節點的nodeType1,而文本節點的nodeType3。在分析的時候,你可以通過這點來進行分析:

使用這些DOM屬性,你可以再root html元素就開始你的分析,最後深入到fieldsetlegend——這些都僅僅是節點的事情。

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com


第一個評分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


開始建立您的網上業務,點擊進入http://www.rank-ad.com/

加入每二週免費網上推廣提示電郵訂閱,即時獲贈免費關鍵字廣告課程及提升網站流量

加入每二週免費網上推廣提示電郵訂閱, 即時獲贈免費關鍵字廣告課程及提升網站流量
Fo Xuan Henry

建立你的 Facebook 電子名片

Bookmark and Share

Twitter Updates:



© 版權所有 海神科技有限公司

© 版權所有 海神科技有限公司