В моем расширении при определенных обстоятельствах мне нужно отобразить контекстное меню, как если бы оно было щелкнуто по другому элементу. Например: я щелкаю правой кнопкой мыши по определенному элементу на странице, но контекстное меню должно отображаться так, как если бы под курсором не было элемента выше, а скорее другой элемент, который я указываю.
Я попытался сделать это в обработчике всплывающих окон следующим образом:
window.addEventListener( "load", function() {
var contextMenu = document.getElementById("contentAreaContextMenu");
if (contextMenu) {
contextMenu.addEventListener("popupshowing", function(event) {
if (document.popupNode !== newElement) {
event.preventDefault();
synthesizeMouse(newElement, 2, 2, { type: "contextmenu", button: 2 }, newElement.ownerDocument.defaultView);
}
}, false);
}
}, false );
newElement - это элемент, на который нужно «кликнуть», и synthesizeMouse определен здесь . К сожалению, это не работает (если я действительно нажимаю на newElement, контекстное меню отображается правильно, если я щелкаю в другом месте, контекстное меню вообще не отображается). Кто-нибудь может понять, почему это не работает?