动态绑定动态绑定XBL的方式 [英] Dynamic way to unbind dynamically binded XBL

查看:148
本文介绍了动态绑定动态绑定XBL的方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



  var css ='.findbar-container { -moz-binding:url('+ self.path.chrome +'findbar.xml#matchword)}'; 
var cssEnc = encodeURIComponent(css);
var newURIParam = {
aURL:'data:text / css,'+ cssEnc,
aOriginCharset:null,
aBaseURI:null
}
cssUri =新建服务器。
myServices.sss.loadAndRegisterSheet(cssUri,myServices.sss.USER_SHEET);

findbar.xml 内容包括:

 <?xml version =1.0?> 
< bindings xmlns =http://www.mozilla.org/xblxmlns:xul =http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul> ;
< binding id =matchword>
< content>
< children />
< / content>
< / binding>
< / bindings>

这只是添加一个按钮到 FindBar 标记为整个字。但现在删除它,我只是用 myServices.sss.unregisterSheet(cssUri,myServices.sss.USER_SHEET); 注销样式表,但是这不是解除绑定。 / p>

在ask.mozilla.org回答告诉我这是预期的行为,但没有提供任何解决方案。



我想也许我应该动态添加绑定,而不是通过CSS,我没有测试这个,但它不符合XBL更新的3个原因:
$ b



  1. 绑定元素与指定不同绑定的样式规则相匹配
  2. 将元素从绑定文档中移除
  3. 元素(例如,通过关闭文件)


答案告诉我, 。

解决方案

好的,我只记得我知道我有一些工作代码可以(重新)绑定不同的XBL绑定,本质上是这样。



它是这样的:

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆