자바 스크립트를 통해 XUL 패널 요소에 액세스하여 동적으로 열고 닫으려고합니다. 예외자바 스크립트에서 XUL 패널 요소를 캡처 할 수 없습니다.
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="chrome://global/skin/" ?>
<?xml-stylesheet type="text/css"
href="chrome://textareaautocomplete/skin/browserOverlay.css" ?>
<!DOCTYPE overlay SYSTEM
"chrome://textareaautocomplete/locale/browserOverlay.dtd">
<overlay id="textareaautocomplete-browser-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript"
src="chrome://textareaautocomplete/content/browserOverlay.js" />
<stringbundleset id="stringbundleset">
<stringbundle id="textareaautocomplete-string-bundle"
src="chrome://textareaautocomplete/locale/browserOverlay.properties" />
</stringbundleset>
<menupopup id="menu_ToolsPopup">
<menu id="xs-textareaautocomplete-menu" label="&textareaautocomplete.menu.label;"
accesskey="&textareaautocomplete.menu.accesskey;"
insertafter="javascriptConsole,devToolsSeparator">
<menupopup>
<menuitem id="textareaautocomplete-ta-menu-item"
label="&textareaautocomplete.cache.start.label;"
accesskey="&textareaautocomplete.cache.accesskey;"
oncommand="TextareaAutocomplete.BrowserOverlay.main();" />
</menupopup>
</menu>
</menupopup>
<panel id="textareaautocomplete-ta-dropdown-panel">
<textbox id="search"/>
</panel>
</overlay>
try {
let panel = document.getElementById("textareaautocomplete-ta-dropdown-panel");
panel.openPopup(node, "after_start", 0, 0, false, false);
}
catch(e) {
window.alert("Failed to set drop down: " + e.name + ": " + e.message);
}
이 제공 나에게 다음과 같은 오류 메시지
panel is null
일이없는 경우 알려 주시기이나 오른쪽으로하지주세요! 한 가지 더 요점은 동일한 자바 스크립트 코드에서 id를 변경하여 stringbundleset, menupopup과 같은 다른 요소에 액세스 할 수 있다는 것입니다.
가능한 중복 7391635/firefox-addons-hidden-browser-in-xul-overlay). 거기에 내 대답을 참조하십시오, 그것은뿐만 아니라 귀하의 문제에 적용됩니다. –