Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.03.2010, 18:57
Кандидат Javascript-наук
Отправить личное сообщение для JAre Посмотреть профиль Найти все сообщения от JAre
 
Регистрация: 29.06.2009
Сообщений: 111

Генератор тэгов.
Интересно, есть ли плуг для jQuery такого рода:
var my_prototype = '<my_window caption = "$caption" x-button="$close">$content</my_window>'; //прототип тэга, то есть мы объясняем jQuery, что такое окно с нашей точки зрения.
var custom_tag = jquery.tag_factory(my_prototype); // фабрика, генерирует поля на основании прототипа.
custom_tag.caption.default = 'имя окна не задано'; // если свойство caption не указано
custom_tag.close.default = kill_window;
custom_tag.instantiation = function(){...}; // используя вводные данные описываем процесс создания окна, то есть объясняем jQuery, что такое окно с точки зрения html.


Потом эту приблуду можно так использовать:

<my_window caption = "Приветствие"><b>Добро</b> пожаловать!</my_window>


PS. Это концепция, а не рабочий код

Последний раз редактировалось JAre, 02.03.2010 в 19:38.
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2010, 20:48
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 04.06.2009
Сообщений: 1,703

JAre,
Зачем именно для джи квери? Можно просто функцию сделать или метод объекта если хотите. Передавать ей(ему) объек {title: "Заголовок", content: "Контент", и т.п. }. Потом в цикле for in парсить регулярками. А переменные в шаблоне лучне во что нибудь завернуть для исключения случайных совпадений, например так '<my_window caption = "{$caption}" x-button="{$close}">{$content}</my_window>'
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2010, 00:43
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

JAre,
Мне кажется, Вас может заинтересовать XSLT. Достаточно мощный язык трансформаций, позволяющий делать такие макросы. Но предупрежу сразу, его применение требует, чтобы исходник был строго синтаксически правильным XML.
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2010, 11:36
Кандидат Javascript-наук
Отправить личное сообщение для JAre Посмотреть профиль Найти все сообщения от JAre
 
Регистрация: 29.06.2009
Сообщений: 111

jQuery потому, что "пиши меньше - делай больше"
Хотелось иметь простую и гибкую систему представления тэгов "высшего порядка" через "атомарные тэги" Казалось бы, фигня. Нужен скрипт, которому говоришь "Я хочу окно, оно квадратное, имеет название, содержимое и кнопку с крестиком. Содержимое это любой html, название это текст а кнопка с крестиком - кнопка при нажатии на которую окно закрывается" А потом просто использовать этот новый тэг как и все остальные.
Схема работы такого скрипта примерно следующая:
1. Распарсить сигнатуру нового тэга.
2. Создать объект этого тэга с заданными полями.
3. Заполнить некоторые поля значением по умолчанию.
4. Распарсить шаблон html продукта трансформации.
5. Привязать поля сигнатуры к полям конечного html(кнопки, лэйбы)
6. Разместить в репозитории - массив шаблонов связанных с прототипами и хранящем значения по умолчанию.
7. Поставить обработчик события "ДОМ построен" при котором скрипт будет находить в документе все тэги соответствующие сигнатуре тэга высшего порядка и выполнять считывание значений полей, генерацию конечного html и подстановку.

Огромное поле для экспериментов с обработкой ошибок и прочих промежуточных стадий и даже перегрузка стандартных тэгов - когда <div> уже не ведет себя как <div>. И даже наследование от стандартных тэгов и других тэгов высшего порядка - расширение функционала. И многое многое другое.

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


Или я брежу?

PS. XSLT это хорошо, но оно слишком требовательно и универсально. Хотя, это хоть какой но выход - спасибо.

Последний раз редактировалось JAre, 03.03.2010 в 14:41.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
getElementsByTagName для нескольких тэгов MaxB Events/DOM/Window 11 07.12.2011 21:29
Выделение одиночных тэгов Pattern Events/DOM/Window 7 26.05.2009 22:29