向Plone中的HTML元素添加名称空间

向Plone中的HTML元素添加名称空间,plone,Plone,我希望在Plone站点上实现AddThis。为了让AddThis跟踪点击,AddThis需要在元素上声明fb名称空间: 我能想到的唯一方法是覆盖main_模板,我不愿意这样做,因为这似乎是一个非常极端的措施。目前,我正在考虑要么将fb名称空间放在包含AddThis代码的div上,然后交叉手指,要么尝试推出我自己的解决方案,而该解决方案缺少此要求 就我所见,像这样的包不必为此费心。为什么不使用JavaScript在DOM中设置它?我假设您通过以下方式获得了一个看起来像您想要的DOM: docu

我希望在Plone站点上实现AddThis。为了让AddThis跟踪点击,AddThis需要在
元素上声明
fb
名称空间:

我能想到的唯一方法是覆盖
main_模板
,我不愿意这样做,因为这似乎是一个非常极端的措施。目前,我正在考虑要么将
fb
名称空间放在包含AddThis代码的div上,然后交叉手指,要么尝试推出我自己的解决方案,而该解决方案缺少此要求


就我所见,像这样的包不必为此费心。

为什么不使用JavaScript在DOM中设置它?我假设您通过以下方式获得了一个看起来像您想要的DOM:

 document.createAttributeNS('http://www.facebook.com/2008/fbml', 'fb')
 document.documentElement.setAttribute('xmlns:fb', 'http://www.facebook.com/2008/fbml')

你试过重氮吗?补充plone的html很简单。我在我的diazo主题中完全做到了这一点,而不必担心内容过多

您可以通过在门户中自定义plone.htmlhead.title viewlet来将其放置在viewlet中。这样,您就不必自定义主_模板;但是,您也不应该过于担心自定义主模板。这不是一个好的选择,因为这样做您的页面模板将不会在格式良好的XML中。根据SitePoint的参考,IE中不支持这些方法。另外,我不确定这是否会导致名称空间被添加到文档的列表中——还有其他信息吗?我不知道这些信息是否能跨浏览器工作,但在各种浏览器中以标准模式工作的可能性至少值得一点测试。这显然只有在“fb”名称空间元素被注入JavaScript而不是服务器端的模板时才有潜在的帮助。不幸的是,这是在现有的传统主题站点上。但这是一个伟大的提示,为未来的项目!