((menuitem, contextMenu, path, shouldShow = () => menuitem.hidden = !gContextMenu.isTextSelected ) => { for(let [attr, val] in Iterator({ id: "qTranslate", label: "Перевести...", class: "menuitem-iconic", image: "moz-icon://file://" + path })) menuitem.setAttribute(attr, val); menuitem.onclick = () => { let event = document.createEvent("KeyEvents"); event.initKeyEvent( "keypress", true, true, window, true /*ctrlKey*/, false /*altKey*/, false /*shiftKey*/, false /*metaKey*/, event.DOM_VK_Q /*keyCode*/, 81 /*charCode*/ ); gContextMenu.target.dispatchEvent(event); }; contextMenu.insertBefore(menuitem, document.getElementById("context-sep-selectall").nextElementSibling); contextMenu.addEventListener("popupshowing", shouldShow); addDestructor(()=> { contextMenu.removeEventListener("popupshowing", shouldShow); contextMenu.removeChild(menuitem); }); })( document.createElement("menuitem"), document.getElementById("contentAreaContextMenu"), "D:\\Portable\\LiberKey\\MyApps\\QTranslate\\QTranslate.exe" ); |