2010-01-29 4 views
3

Я намерен разработать машину конечного состояния следующим образом.Реализация конечного автомата для веб-интерфейса пользователя

  1. идентификаторы Extract управления от -> веб-страницы,
  2. идентификаторы управления на запись в XML -> Controls-XML.
  3. вручную объявить государства и переход в -> Controls-XML
  4. Scan Controls-XML и прикрепить заранее объявленная Jscript к eventhandlers встраивать их в -> веб-страницы .. 5.

Насколько это возможно.

Могу ли я попасть в банку червей?

+0

Я полагаюсь на TT (инструмент преобразования текста), чтобы сделать это .. – TonyP

+0

Вы изобретаете XUL? https://developer.mozilla.org/en/XUL –

+0

Будьте в курсе, намного проще использовать JSON instgead XML, если вы работаете в основном в js. – FlavorScape

ответ

1

Во-первых, мы живем в банке червей!

ваши вопросы немного расплывчатым, просьба представить более подробную информацию, если я не хватает вашей точки и, возможно, это должно быть клюв в parfts углубить discution в деталях часть

Предположим, что вы хотите работать в прямом эфире на клиенте браузера на любой странице

, выбирая идентификаторы элементов управления, я поддерживаю его все элементы управления веб-страницы (это может быть щелчок или щелчок, возможно, с помощью клавишных комбо), но давайте будем простыми.

Extrating идентификаторы

вот код, чем может помочь вам:

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) 

и перечислим (на консоли) все элементы, имеющие идентификаторы, показывающие тип элемента и идентификатор ... Вы можете фильтровать, что Eazy , только печатающие элементы определенных тегов, таких как ввод, выберите 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 (как выше функции), а вместо сыгранного XML-текста ваша функция сканирования должна использовать команды XMLDOM для вставки узлов в документ.

вручную объявить государства и переход в -> Controls-XML

это трудно один, это (XML документ) Информация будет копировать/вставить и последний отредактирован? отредактировано внутри, вставив кучу кода для создания интерфейса?

много сомнений здесь, но как только у нас будет информация в формате XML, мы будем свободны использовать наше воображение и решить формат для обработки желаемых изменений состояния.

Scan Controls-XML и прикрепить заранее объявленная Jscript к eventhandlers встраивать их в -> веб-страницы

на данный момент действия зависят от методов с последующим выше, но в любом случае с помощью функции XMLDOM в пересечь XML-документ и применить изменения статуса или обработчики событий к элементам управления тривиально.

управления не должны быть отсканированы больше, потому что мы хранятся идентификаторы (используйте getElementById)

У меня есть система проверки формы, что делает что-то подобное, за исключением XML предопределен и хранится на стороне сервера, но после загрузки его будет делать именно это. добавление обработчиков событий и изменение статуса на основе оцененных выражений.

Смежные вопросы