2010-01-29 51 views
3

我打算按照以下方式開發有限狀態機。實現用於Web UI的有限狀態機

  1. 從提取控制標識 - >網頁,
  2. 寫控制ID到一個XML - >控制-XML。
  3. 手動聲明的國家和過渡中 - >控制-XML
  4. 掃描控件,XML和附加預申報的Jscript到事件處理中嵌入他們 - >網頁.. 5.

這是多麼可行..

我可以進入蠕蟲的罐頭?

+0

我靠TT(文本轉換工具)來做到這一點.. – TonyP 2010-02-06 08:34:36

+0

您是否在重新創建XUL? https://developer.mozilla.org/zh/XUL – 2010-02-06 12:22:42

+0

如果您主要在js工作,那麼使用JSON instgead更容易一些。 – FlavorScape 2012-03-22 23:46:39

回答

1

首先,我們生活在一個忌諱的話題!

你的問題有點模糊,請提供更多的細節,如果我失去了你的觀點,也許這應該在parfts被喙加深部分細節

的discution假設你想生活工作在客戶端上通過extrating的控制我supouse這是一個網頁的所有控件的ID端瀏覽器在任何頁面

(也可能是通過點擊或鍵連擊點擊可能),但讓簡單。

Extrating ID的

這裏的代碼比可能會幫助您:

function scan(e) { 
    if (e&&e.childNodes) 
    for(var i=0;i<e.childNodes.length;i++) { 
    var child=e.childNodes[i]; 
    if (child) { 
     if(child.id) console.log(child.nodeName,child.id); 
     scan(child); 
    } 
    } 
} 

注:這是與鍍鉻完成的,但是任何瀏覽器控制檯會做,我認爲。

剛剛粘貼功能在控制檯上,然後調用它像:

scan(document) 

,它會列出(在控制檯上)有ID的顯示元素類型和id的所有元素......可以篩選EAZY通過剛剛印刷像INPUT,SELECT TEXTAREA等某些標籤的元素...

關於XML

這裏瀏覽器變得有點棘手,你可以把它簡化過自己喜歡的瀏覽器中,followi ng函數在給定一些XML文本的情況下構造一個XML文檔。 因此,通過這種形式給出您的掃描功能應該編寫XML文本(而不是寫到控制檯),後來我們就可以養活XML文檔

function makeNode(text) { 
var doc; 
if (window.ActiveXObject) { 
    doc=new ActiveXObject("Microsoft.XMLDOM"); 
    doc.async="false"; 
    doc.loadXML(text); 
} else {// code for Mozilla, Firefox, Opera, etc. 
    var parser=new DOMParser(); 
    doc=parser.parseFromString(text,"text/xml"); 
}// documentElement always represents the root node 
return doc.documentElement; 
} 

其他形式給出是創建一個空的XML文檔(如上面的函數)而不是feed raw raw xml text你的掃描函數應該使用XMLDOM命令將節點插入到文檔中。

手動聲明美國和過渡在 - >控制-XML

這是一個很難的,這是(XML文檔)信息被複制/粘貼和後者編輯?它是通過插入一堆代碼來構建接口來進行編輯的嗎?

這裏有很多疑問,但是一旦我們獲得了XML格式的信息,我們就可以自由使用我們的想象力並決定處理想要的狀態變化的格式。

掃描控件,XML和附加預申報的Jscript到事件處理器將它們嵌入在 - >網頁

在這一點上的行動取決於以上方法緊隨其後,但在任何情況下使用XMLDOM功能遍歷xml文檔並將狀態更改或事件處理程序應用於控件是微不足道的。

控制不必再被掃描,因爲我們已經存儲了的ID(使用的getElementById)

我有一個表單驗證系統,該系統有類似的功能,除了XML是預定義並存儲在服務器端,但是一旦裝好了將做到這一點。附加事件處理程序並根據評估的表達式進行狀態更改。