自定义命名空间在xhtml中的标签

4
我们在许多地方看到,每当导入跨站点小部件时,它都带有一个具有特定命名空间的自定义标签。我的问题是如何在JavaScript中声明、使用和修改这个标签。
例如,谷歌的+1按钮。导入基本上是,您导入一个JavaScript,然后一个带有g作为命名空间的标签<g:plusone></g:plusone>
我看到了他们的源https://apis.google.com/js/plusone.js,发现很难搜索他们如何在javaScript中定义其命名空间并导入它。
基本上,我想做三个功能。
  1. 能够定义小部件标记<x:y></x:y>并使用JavaScript将其解析为一些动态HTML。
  2. 此HTML内容将包含动态内容、动画和AJAX调用,由导入的单个JavaScript处理。
  3. 能够在一个页面上导入多个小部件,所有部件相互依赖。也就是说,如果我在一个地方更新,其他地方也会得到更新。

我一直认为在 <ns:tagname></ns:tagname> 这样的结构中:ns 是标签的命名空间,tagname 是标签本身的名称。请确认一下。 - Daniel O'Hara
抱歉,我会修改问题。 - Boopathi Rajaa
你的代码为什么不能直接使用"x:y"? - jtbandes
没有任何阻碍。我的问题是如何在JS中声明命名空间,像许多跨站小部件一样高效地访问这些元素。 - Boopathi Rajaa
1个回答

1

Google在他们的JavaScript中使用了命名空间,但我不认为这与XML标签有关。

我不久前实际上就偶然发现了这篇文章: http://www.zachleat.com/web/selecting-xml-with-javascript/ 我使用了Sarissa: http://dev.abiss.gr/sarissa/

您可以定义自己的XML标签,并使用JavaScript来定位它以修改其内容。此外,还有Taconite http://jquery.malsup.com/taconite/,结合Sarissa可能可以给您提供所需的功能。

至于JavaScript的命名空间,您只需使用函数或对象作用域即可。

var x = {
    y: function (){}
};

在这个例子中,y() 是命名空间 x 的一部分,因此调用方式为 x.y()。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接