Orbeon - 如何防止组件的CSS被服务器端嵌入API重写?

时间:2014-11-25 18:56:34

标签: orbeon

我创建了一个包含很少标记的自定义XBL组件。它主要由CSS,JavaScript和<div>组成。然后,JavaScript将标记写入<div>内的DOM。它的CSS为许多特定元素ID指定样式。这在Form Runner中工作正常,但不适用于服务器端嵌入API。

服务器端嵌入API似乎正在重写CSS文件。它为具有o0的特定ID的所有CSS选择器添加前缀。例如,#MultiMousePosition-cwm已更改为#o0MultiMousePosition-cwm。如果元素的标记包含在XBL组件中,这可能会正常工作。然后它可以被重写。但由于标记是在加载页面后由JavaScript生成的,因此不会发生这种情况。

如果使用API​​在同一页面中包含多个表单,是否重写了CSS和元素ID?

有没有办法防止CSS被重写?或者还有其他方法可以解决这个问题吗?

我尝试使用<xxbl:global>,但看起来这对CSS资源不起作用。

JavaScript是一个由另一个开发人员创建的复杂库,如果可能的话,会重写它以避免此问题需要大量工作。

1 个答案:

答案 0 :(得分:1)

重写id是为了防止生成的HTML页面中的ID冲突。这可能包括支持多个表单,但也可能与页面上的其他内容发生冲突。

目前无法禁用重写。添加作为配置属性并不难,可能在XBL组件上添加(虽然有些东西需要重写,有些东西不需要重写,这可能会使配置更加困难),或者全局,对于那些知道他们肯定的用户来说不会有id冲突。