Firefox插件:隐藏<browser />在XUL覆盖
Firefox Addons: Hidden <browser /> in XUL Overlay?
我试图在我的Firefox插件的覆盖(我的插件的功能的一部分)加载和操作一个隐藏的<browser />
标签。但是,我不能访问我在document
的叠加中添加的任何元素。
例如:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://foxy_bucks/skin/overlay.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://foxy_bucks/locale/overlay.dtd">
<overlay id="foxy_bucks-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<browser id="bContainer" src="http://google.com/"></browser>
<script type="text/javascript">
window.addEventListener("load", function(){
alert(document.bContainer.src);
}, false);
</script>
</overlay>
谁能给我指个正确的方向? 叠加总是必须扩展现有的元素。如果你在覆盖层的顶层有一个标签,这个标签的ID还不存在于文档中,那么这个元素就会被忽略(<script>
标签是该规则的一个值得注意的例外)。这种情况发生在您的情况下,ID bContainer
在您要覆盖的文档中不存在,因此您的<browser>
标记被简单地忽略。这种机制允许在相同的覆盖层中为Firefox和SeaMonkey工具菜单提供内容-该菜单在Firefox和SeaMonkey中具有不同的ID,因此覆盖在SeaMonkey菜单上的部分在Firefox中被忽略,反之亦然。
如果你想添加一个元素到文档中,那么你需要覆盖它的根元素。对于Firefox浏览器窗口,它看起来像这样(注意main-window
是根元素的ID):
<overlay id="foxy_bucks-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<window id="main-window">
<browser id="bContainer" src="http://google.com/"></browser>
</window>
...
</overlay>
旁注:要通过ID访问元素,需要使用document.getElementById()
:
alert(document.getElementById("bContainer").src);
相关文章:
- 在循环中分配json值时,值被覆盖
- 谷歌地图固定位置覆盖
- 只覆盖箭头键滚动事件
- JQuery覆盖不更改单选选项
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 将添加一个相同类型的事件附加或覆盖以前添加的具有相同名称的事件
- 传单中如何在更改基层时启用/禁用覆盖层
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- HTML/CSS-用于拖放的全页面覆盖
- 让javascript知道epub3电子书中何时播放媒体覆盖
- 覆盖函数中的函数
- 无法覆盖CSS伪元素:before
- 如何覆盖原型中的事件侦听器
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- 如何覆盖主干中的extend方法
- jQuery无法处理覆盖
- MDN文档中关于弄清楚XUL元素的段落是什么意思:“如何将覆盖扩展转换为无重启”
- 如何通过javascript访问XUL覆盖层中的元素
- Firefox插件:隐藏
在XUL覆盖 - 如何访问XUL覆盖DOM