我正在尝试为浏览器(Firefox或IE或Chrome)开发插件/扩展程序。这样做的目的是插件/扩展应该识别我自己的一个自定义标签。
例如:
<myowntag1>
...
<mysubtag1 ... />
...
</myowntag1>
如何使用插件/扩展程序让浏览器识别出来?
答案 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)
似乎是一个可行的任务。这就是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">
在将其上传到服务器之前,请注意其优缺点: