3

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

例如:

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

如何使用插件/扩展使浏览器识别这一点?

4

4 回答 4

2

你的问题让我想起了线程上的XML 是如何使用和解释的?- 您的浏览器没有用于未知标签的 api,但它有一个用于将 xml 转换为名为 XSLT 的其他任何东西(包括 html)的 API。我知道做您想做的唯一方法是将您的网页编写为 XHTML(这是 XML,即使使用 HTML5 也是可能的)。请注意,包含 XML 声明的第一行在其位置,并添加包含对 XSLT 样式表的调用的第二行。编写此样式表 - 它必须从 XML/XHTML 源页面复制所有内容,但您自定义的标签除外。这些必须转换为所需的 HTML 输出。此解决方案适用于所有主流浏览器,尽管从一开始就使用转换后的 HTML 可能不太复杂。要打开一个新标签,您可以使用链接的“目标”属性(<a href="http://test.com" target="newtab">Test</a>)。

于 2011-03-11T07:48:25.220 回答
1

能够在 XML 页面中嵌入任意 XML(在用户定义的名称空间中),并让名称空间以某种方式与理解该 XML 词汇表的插件代码相关联,这是我们许多人共同的梦想。不幸的是,定义 HTML5 的小组 (WHATWG) 正朝着相反的方向发展:他们不认为这种可扩展性是必需的,并且在 HTML 中嵌入 XML 变得越来越难而不是容易。唯一的例外是像 SVG 或 MathML 这样的 XML 词汇表,由于某种原因吸引了 WHATWG 的人们并得到他们的认可。

于 2011-03-11T08:33:23.163 回答
1

如果您从 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;
}
于 2011-03-11T17:21:15.950 回答
0

使用在文档类型中引用的自定义 DTD,例如使用的示例mymymy.dtd

<!DOCTYPE html SYSTEM "mymymy.dtd">

在将其上传到服务器之前,请注意利弊:

于 2013-03-15T17:48:44.460 回答