Кто-нибудь знает, есть ли инструмент, который может конвертировать html в javascript.
Например:
<div>
</div>
будет конвертировать в
aDiv = document.createElement('div');
document.appendChild(aDiv);
и т. д.
Я делаю несколько html-шаблонов для компонентов пользовательского интерфейса, и я использую MooShell для создания прототипов. Было бы здорово иметь возможность автоматически генерировать javascript, который будет создавать html-компонент.
Спасибо
Я вижу, что другие люди дали вам много советов, как это сделать, но мои два цента на одну вещь, о которой нужно помнить.
Если вы вставляете / удаляете / изменяете элементы в / из DOM с помощью клиентского Javascript, вы заметите, что с такой структурой, как jQuery, вы не сможете вызывать и манипулировать элементами DOM, которые вы добавили в муха.
Лучше всего искать информацию с помощью подключаемого модуля jQuery Live.
Я бы предложил взглянуть на pure javascript HTML parser Джона Ресига. Он состоит из парсера HTML в стиле SAX и включает в себя XML-сериализатор, построитель DOM и создатель DOM. Каждый из них принимает на вход строку HTML.
В частности, метод HTMLtoDOM может быть легко перепрофилирован для возврата строки javascript, необходимой для построения DOM для любой входной строки HTML.
Если бы не было такого инструмента (а я думаю, что это так), я бы решил эту проблему старым добрым способом: создал бы свой собственный парсер.
Фреймворк PrototypeJS имеет метод insert (), который может анализировать HTML-код, поэтому вы можете сделать что-то вроде:
$$('body')[0].insert(stringWithYourHTMLCode);
Или вы определяете контейнер для своего контента:
$('containerId').insert(stringWithYourHTMLCode);
Я не уверен насчет вашей ситуации, но если у вас есть компоненты в HTML, они должны иметь события, идентификаторы и привязки ... Так что я не думаю, что есть гениальный скрипт, похожий на человека, который может генерировать этот код. Добавьте к этому, что ваша проблема очень специфична. Он может быть где-то в какой-нибудь ИТ-корпорации, но веб-разработчики не используют его ежедневно, как jQuery.