Страницы: 1
Добрый день.
В overlay.xul создаю кнопку на панеле.
<toolbarpalette id="BrowserToolbarPalette"> <toolbarbutton id="Test_button" label="Test_B" tooltiptext="Test_click" oncommand="MakeTest()" class="toolbarbutton-1 chromeclass-toolbar-additional"> </toolbarbutton> </toolbarpalette>
И все отлично работает. Но вот задумал я сделать вызов разных функций в зависимости от ЛКМ или ПКМ.
И вроде бы нашел код похожий на форуме. Вроде 1-Left \ 2 - Middle \ 3 - Right click.
var testbt = document.getElementById("Test_button") testbt.addEventListener("mousedown",function(e) {console.log(e); // you can inspect the click event if (e.which === 3) {alert("right click");} });
Но как не прикручиваю его в файл overlay - не получается... Кнопка вообще не выводится на панель.
Можете подсказать как правильно сделать?
Отсутствует
Разве не e.button тут нужно использовать
mousedown - Event reference | MDN
Отсутствует
Немного поспешил...
При отлове ПКМ всплывает стандартное меню (хотя и не всегда, иногда почему-то оно не выводилось), как правильно его отключить?
function MakeChoice (event) { //Функция вызывается из оверлея по команде oncommand="MakeChoice()" event.preventDefault(); event.stopPropagation(); // event.type == "mouseup" && closeMenus(event.target); // пробовал и так if (event.button === 0) {Alert("ЛКМ");} //Left else if (event.button === 2) {Alert("ПКМ");} //Right } var testbt = document.getElementById("Test_button") testbt.addEventListener("mousedown", MakeChoice); },
Отсутствует
При отлове ПКМ всплывает стандартное меню (хотя и не всегда, иногда почему-то оно не выводилось), как правильно его отключить?
Может:
или
Отсутствует
bunda1 спасибо за помощь, но не помогло.
В ходе экспериментов по подстановке в разные места функций выяснилось, что:
Первый код вообще все блокирует, т.е. кнопка такое ощущение что даже не нажимается.
Второй код просто не работает.
Отсутствует
Странно, но сейчас срабатывает без каких либо event.preventDefault(); и event.stopPropagation();
Но первый клик всегда уходит "в молоко". Со второго клика уже начинает действовать функция.
Видимо это происходит потому, что код добавляющий обработчик события вешается уже после нажатия на кнопку на тулбаре.
Можете подсказать, как можно повесить его раньше, чтобы уже первый клик по кнопке срабатывал?
Пробовал в overlay писать код инициализации в теге <script> - не помогло.
Отсутствует
Страницы: 1