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>
そしてPROT-on.js:
はここでXULコードですだから私は本当に何が問題なのか分からない。
manageException関数は、あなたが不思議に思っている場合に備えて、例外とそれが正常に動作するという追加情報を表示するだけです。
私は今embarrased、そのような愚かなことを感じます。とにかく解決に感謝します。 – frisco