Как заставить браузер распознавать пользовательский тэг? - PullRequest
3 голосов
/ 11 марта 2011

Я пытаюсь разработать плагин / расширение для браузера (Firefox или IE или Chrome).Цель этого заключается в том, чтобы плагин / расширение распознавали один из моих собственных пользовательских тегов.

Например:

<myowntag1>
     ...
     <mysubtag1  ... />
     ...
</myowntag1>

Как сделать так, чтобы браузер распознал это с помощью плагина / расширения

Ответы [ 4 ]

2 голосов
/ 11 марта 2011

Ваш вопрос напоминает мне о потоке Как XML используется и интерпретируется? - в вашем браузере нет API для неизвестных тегов, но у него есть один для преобразования XML в другое (включая HTML) имя с именем XSLT.Единственный способ, которым я знаю, чтобы делать то, что вы хотите, это написать свою веб-страницу как XHTML (который является XML и возможен даже с HTML5).Помните, что первая строка, содержащая декларацию XML, находится на своем месте, и добавьте вторую строку, содержащую вызов таблицы стилей XSLT.Напишите эту таблицу стилей - она ​​должна копировать все со страницы источника XML / XHTML, кроме ваших собственных тегов.Они должны быть преобразованы в желаемый вывод HTML.Это решение работает с любым основным браузером, хотя может быть менее сложно использовать преобразованный HTML с самого начала.Чтобы открыть новую вкладку, вы можете использовать атрибут target для ссылки ( Test ).Это открывает новую вкладку или окно в зависимости от настроек вашего браузера.

1 голос
/ 11 марта 2011

Похоже на выполнимую задачу, если вы анализируете теги вручную из JavaScript.Вот как реализованы теги пространства имен Facebook FBML, например.

Допустим, у нас есть этот HTML-код с пользовательским тегом custom:header, который должен превратиться в h1:

<html xmlns:custom>
<body>
    <custom:header text="header text"></custom:header>
</body>
</html>

В содержимомскрипт, который мы можем сделать:

$el = $("custom\\:header");
$el.html($("<h1>").text($el.attr("text")));

(здесь я использую jQuery).Это превратит наш тег в:

<custom:header text="header text">
    <h1>header text</h1>
</custom:header>

Вы также можете добавить файл CSS для своих пользовательских тегов:

custom\:header {
    color:red;
}
1 голос
/ 11 марта 2011

Идея возможности встраивать произвольный XML (в определяемое пользователем пространство имен) в страницу XML и иметь пространство имен, каким-либо образом связанное с подключаемым кодом, который понимает этот словарь XML, является мечтой, которую многие из нас имеютобщий.К сожалению, группа, определяющая HTML5 (WHATWG), движется в противоположном направлении: они не рассматривают такого рода расширяемость как требование, и встраивание XML в HTML становится все сложнее, а не проще.Единственное исключение - это словарь XML, такой как SVG или MathML, который по какой-то причине обращается к людям на WHATWG и одобряется ими.

0 голосов
/ 15 марта 2013

Используйте пользовательское DTD, на которое есть ссылка в doctype, например, в примере mymymy.dtd:

<!DOCTYPE html SYSTEM "mymymy.dtd">

. Перед загрузкой на сервер ознакомьтесь с плюсами и минусами:

...