我创建了一个包含很少标记的自定义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是一个由另一个开发人员创建的复杂库,如果可能的话,会重写它以避免此问题需要大量工作。
答案 0 :(得分:1)
重写id是为了防止生成的HTML页面中的ID冲突。这可能包括支持多个表单,但也可能与页面上的其他内容发生冲突。
目前无法禁用重写。添加作为配置属性并不难,可能在XBL组件上添加(虽然有些东西需要重写,有些东西不需要重写,这可能会使配置更加困难),或者全局,对于那些知道他们肯定的用户来说不会有id冲突。