Я не могу получить доступ к docShell для моего элемента браузера в xul? - PullRequest
0 голосов
/ 16 января 2012
<browser id="search" type="content-targetable" src="www.google.com">
</browser>

Javascript Code

// 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 голосов
/ 16 января 2012

Как и во многих тегах 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 являетсялогическое значение, а не строка.

...