3

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

如:

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

如何使浏览器认识到这一点使用插件/扩展程序?

+0

你是什么意思 “用户自定义标签”?你能解释更多关于你想要完成的事情吗? – abraham 2011-03-11 06:53:25

+0

我正在尝试创建自己的XML标记,这将是可点击的,并将带我到多个链接。该项目的领域也涉及网络的语义,但我的问题不在于此。 假设我有一个标签 <位置URL = “第一URL这里”/> <位置URL = “第二URL这里”/> CLICK_HERE 这是XML标记。我想开发一个插件/扩展插件,使浏览器能够识别这种标签,当点击CLICK_HERE时,在两个标签中,子标签中指定的URL都应该打开。 – 2011-03-11 06:55:11

+0

不是这样更容易用纯javascript解决这个问题?当点击div中的链接时,window.open全部为 sibling标签。 – ChrisR 2011-03-11 08:02:08

回答

1

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

2

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

+0

感谢您的帮助。我现在只在这些线上工作。现在我被要求采用不同的方法。我想要一个可以做这个东西的浏览器的插件/扩展。这个插件/扩展应该能识别我的标签。这件事? – 2011-03-11 07:52:08

+0

而不是定义一个完整的新元素名称,你可以在一个元素上附加一个唯一的id,比如一个span。编写一些javascript来定位具有该id的元素并插入所需的链接元素。大多数浏览器都支持用户为插件定义的javascript。您甚至可以将书签保存为书签,并将其用作“小书签”。 – Andreas 2011-03-11 08:24:00

1

似乎是一个可行的任务,如果你从JavaScript手动解析标签。这就是Facebook FBML命名空间标签如何实现的例子。

比方说我们有这个网站的自定义标签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; 
} 
+0

你如何得到这个在不添加xmlns的普通HTML页面上工作?用fb:button和fb:就像你添加一些javascript来做一些事情来添加这段代码...... what/how?有任何想法吗?我想制作一个公司标签,以便我们的客户可以添加到他们的网站,从而自动为我们的网站调用我们的服务器模块。 – BerggreenDK 2011-06-16 09:56:48

+0

@BerggreenDK对不起,我不明白这个问题。我展示了一个“正常”html的例子,声明xmlns并不是特别的。如果你想创建一个公司标签,你还需要提供一个人们可能会在他们的页面中包含的JavaScript代码,以解析你的自定义标签。 – serg 2011-06-16 15:27:57

+0

@serg是的,好吧,我可以看到jQuery以及它是如何工作的。但是我的意思是,xmlns:custom真的需要吗?如果我有多个?像FB,雅虎,微软,谷歌等在一个页面?我认为他们用一些javascript和iframe来封装html xmlns:自定义事件 – BerggreenDK 2011-06-20 11:39:04