1
저는 아주 간단한 확장 기능을 제공하며 내용에 따라 컨텍스트 메뉴에 새 항목을 표시하고 싶습니다. 매우 간단해야하며이를 수행해야하는 방법을 보여주는 자습서가 많이 있습니다. .Firefox 컨텍스트 메뉴 항목이 표시되지 않습니다.
문제는 내가 새로운 요소 인 contecontentAreaContextMenu
에 popupshowing
에 대한 수신기를 추가하자 마자 숨기지 않아도 표시되지 않는다는 것입니다. 난 그냥 라인을 코멘트 경우
var proton = {
init : function() {
try {
if (document.getElementById("contentAreaContextMenu")) {
document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", this.showContextMenu, false);
}
} catch (e) {
this.manageException(e);
}
},
hello : function(){
try {
alert("Hello, world2!");
} catch (e) {
this.manageException(e);
}
},
showContextMenu : function (event){
try {
var show = document.getElementById("prot-on-main-item");
show.setAttribute("hidden", false);
} catch (e) {
this.manageException(e);
}
},
manageException : function (exception) {
window.openDialog(
"chrome://Prot-On/content/resources/html/showErrorBacktrace.htm",
"errorbacktrace",
"centerscreen=yes,chrome=yes,modal=yes,resizable=yes",
exception,
"display error"
);
}
}
try {
window.addEventListener("load", proton.init(), false);
} catch (e) {
proton.manageException(e);
}
: 예상대로
if (document.getElementById("contentAreaContextMenu")) {
document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", this.showContextMenu, false);
}
모든 작품을,
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<?xml-stylesheet href="chrome://Prot-On/skin/Prot-On.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://Prot-On/locale/Prot-On.dtd">
<overlay id="Prot-On" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://Prot-On/content/prot-on.js"/>
<popup id="contentAreaContextMenu">
<menuitem id="prot-on-main-item" label="Hello, world!" oncommand="proton.hello();"/>
</popup>
</overlay>
그리고 제자-on.js :
다음은 XUL 코드 그래서 나는 그 문제가 무엇인지 정말로 확신하지 못합니다.
manageException 함수는 궁금한 것을 대비하여 예외 및 추가 기능에 대한 추가 정보를 표시하기 만합니다.
지금 당황, 그런 바보 같은 일을 생각합니다. 어쨌든 해결책 주셔서 감사합니다. – frisco