如何让浏览器识别自定义用户定义的标签?

时间:2011-03-11 06:34:19

标签: markup browser-extension custom-tag processing-instruction

我正在尝试为浏览器(Firefox或IE或Chrome)开发插件/扩展程序。这样做的目的是插件/扩展应该识别我自己的一个自定义标签。

例如:

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

如何使用插件/扩展程序让浏览器识别出来?

4 个答案:

答案 0 :(得分:2)

您的问题在线程How XML used and interpreted?上提醒我 - 您的浏览器没有针对未知标签的api,但它有一个用于将xml转换为名为XSLT的任何其他(包括html)。我知道做你想做的唯一方法就是把你的网页写成XHTML(这是XML,甚至可以用HTML5编写)。请注意,包含XML声明的第一行就位,并添加第二行,其中包含对XSLT样式表的调用。编写此样式表 - 除了自定义标记外,它必须复制XML / XHTML源页面中的所有内容。这些必须转换为所需的HTML输出。此解决方案适用于所有主流浏览器,但从开始使用转换后的HTML可能不那么复杂。要打开新标签,您可以使用链接的“目标”属性(&lt; a href =“http://test.com”target =“newtab”&gt; Test&lt; / a&gt;)。这将根据您的浏览器首选项打开一个新选项卡或窗口。

答案 1 :(得分:1)

能够在XML页面中嵌入任意XML(在用户定义的命名空间中)并使命名空间以某种方式与理解此XML词汇表的插件代码相关联的想法是我们许多人拥有的梦想共享。不幸的是,定义HTML5(WHATWG)的组正朝着相反的方向发展:他们没有将这种可扩展性视为一种要求,并且在HTML中嵌入XML变得越来越难而不是更容易。唯一的例外是像SVG或MathML这样的XML词汇表,出于某种原因,它们会吸引WHATWG上的人并得到他们的认可。

答案 2 :(得分:1)

如果你从javascript手动解析标签,

似乎是一个可行的任务。这就是Facebook FBML名称空间标签的实现方式。

让我们说这个带有自定义标记custom:header的HTML应该变成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;
}

答案 3 :(得分:0)

使用doctype中引用的自定义DTD,例如使用mymymy.dtd的示例:

<!DOCTYPE html SYSTEM "mymymy.dtd">

在将其上传到服务器之前,请注意其优缺点: