2012-11-05 6 views
2

Я пытаюсь завершить плагин для браузера, который будет анализировать текст и отмечать его каким-то образом.Пользовательские теги html - Есть ли лучший способ?

В принципе, , скажем, ваш браузер, и вы видите, что это натолкнулось на этот текст где-то на вашей странице.

<p>and then Tom Cruise, devoured the planet.</p> 

Плагин сканирует текст и найдет «Tom Cruise». После того, как мы наклеили AjAX на моем сервере и вернем HTML-страницу, которая будет отображаться в подсказке.

Первоначально я пометил его как так

<p>and then <span class="ajax subtleShadow">Tom Cruise</span>, devoured the planet.</p> 

Хотя я обнаружил, что это может пойти не так, если веб-страница имеет странный поверочный CSS или, если его вложенное в пролете со странными вещами, как границы.

Моим решением было INVENT новые теги html. как так ...

<p>and then <fhwdgads class="ajax subtleShadow">Tom Cruise</fhwdgads>, devoured the planet.</p> 

Хотя быстрый поиск привел меня к выводу, что «Интернет» придет после меня с вилами я должен сделать это.

Есть ли другой способ отметить встроенное текстовое создание пользовательских тегов?

EDIT: Link to a view of the broken button in the nested spans.

+1

Вы забыли добавить вам разметку. Что касается вас, «изобретая» новые HTML-теги - нет. Вы используете пользовательские элементы, но они не станут волшебными стать частью стандарта HTML. – Oded

+0

Да, первое сообщение .... Я ошибся –

+0

Я не знал, что границы были странными вещами. – Alohci

ответ

1

Там действительно нет никакой гарантии, что <fhwdgads> никогда не признаются в качестве тега с некоторой специальной семантикой или форматированием. Это может быть невероятно, если вы используете очень грязное имя тега, но не правда ли? Люди склонны использовать мнемонические имена при создании тегов, а затем есть реальная возможность столкнуться с тегами в некоторых текущих или будущих спецификациях или браузерах.

Кроме того, некоторые старые версии IE полностью игнорируют нераспознанные теги, например. не позволяйте им стилизовать их. Этого можно избежать, используя document.createElement() один раз для каждого имени тега.

Использование span или div столь же безопасно на практике. Нет оснований полагать, что браузеры по умолчанию имеют какое-то причудливое форматирование. Так же, как мы не прекращаем использовать h1, хотя теоретически возможно, что он сделает контент розовым и мигающим. Невозможно быть безупречным, если вы ожидаете, что браузеры будут безумны.

Использование классов - это другое дело, хотя только в том смысле, что другие таблицы стилей играют с теми же именами классов, что и вы. Возможно, вам придется работать в среде, где другие таблицы стилей автора мешают вам. Но это просто требует осторожности; он не делает элемент span или div с классом неправильного инструмента.

0

Вы можете использовать вместо этого <DIV> тега. Основанный на моем «опыте», элемент div в значительной степени идет в любом месте иерархии html (внутри <body>, а не внутри тегов ввода). Однако вы должны отметить стили по умолчанию.

+0

И не внутри встроенных элементов. Но зачем использовать 'div' для решения проблемы? –

+0

Вставка элемента 'div' почти наверняка уничтожит дизайн сайта. Сторонние виджеты должны размещаться рядом с содержимым сайта, а не разрушать его. – amustill

0

Я думаю, что использование пользовательских тегов html - это не плохой способ. Конечно, я не могу пообещать, что у вас нет связанных технических проблем с разработкой вашего плагина. Но Facebook сделал: http://developers.facebook.com/docs/reference/fbml/

Я не знаю, почему он был удален.

Вы также можете добавить свое специальное расширение пространства имен (например, fb: для Facebook). Web 2.0 поддерживает независимость представления данных и пользовательских тегов: http://en.wikipedia.org/wiki/Web_2.0#Concepts

0

Решение было бы определить CSS-класс, который первым сбрасывает все свойства стиля, так что вы можете начать с чистого листа.

Другим решением было бы использовать тег, которые не используется очень часто, такие как del, ins и

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