我无法在xul中访问我的浏览器元素的docShell?

时间:2012-01-16 12:00:35

标签: firefox browser firefox-addon xul

<browser id="search" type="content-targetable" src="www.google.com">
</browser>

Javascript代码

// I am using script to set the property of browser element

var x=document.getElementById('search');

x.docshell.allowAuth="false"     // The code stops here

x.docshell.allowPlugin="false"   //This does not work

1 个答案:

答案 0 :(得分:0)

与许多XUL标记一样,<browser>标记本身并不“特殊” - XBL添加了“特殊”功能。重要的是XBL绑定是通过CSS规则添加的,并且要应用元素的CSS规则必须插入到文档中。因此,首先插入元素并在此之后仅访问特殊属性非常重要。当然,在这种情况下,可能还需要一些异步初始化,因此您最好采取以下措施:

var browser = document.createElement(browser);
parent.appendChild(browser);
window.setTimeout(initBrowser, 0);

function initBrowser()
{
  x.docShell.allowAuth = false;
  ...
  browser.loadURI("...", null, null);
}

请注意,它是docShell(您的示例使用了错误的捕获)并且allowAuth是布尔值,而不是字符串。