Отключение контекстного меню excel
Не то чтобы я пытался предотвратить «Просмотр исходного кода» или что-то подобное, но я делаю несколько настраиваемых контекстных меню для определенных элементов.
Обновлено: ответ на ответы: я пробовал это:
Щелчок правой кнопкой мыши отключен, однако щелчок с нажатой клавишей Control все еще активен в Firefox. Пожалуйста, отключите нажатие клавиши Control или Shift правой кнопкой мыши в Firefox.
Темное примечание - я никогда не видел скрипта правой кнопки мыши, который работал бы в Opera, даже если Opera настроена на разрешение перехвата щелчка правой кнопкой мыши (что по умолчанию отключено).
да, я намерен иметь альтернативные, хотя и менее удобные способы доступа к тем же действиям для Opera
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной.
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом.
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека.
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а.
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
Ответы 5
Захватите событие onContextMenu и верните false в обработчике событий.
Вы также можете зафиксировать событие щелчка и проверить, какая кнопка мыши запустила событие с помощью event.button , в любом случае в некоторых браузерах.
Рад, что это сработало. Однако вы определенно захотите проверить это во всех ваших целевых браузерах.
похоже, у меня не работает google chrome (мой единственный целевой браузер)
Возврат false из обработчика событий не блокировал отображение контекстного меню по умолчанию в Firefox или Chrome в моем случае. Но вызов event.preventDefault () сделал . Думал, что это может помочь.
Мне также пришлось использовать event.preventDefault(); и return false; в Chrome 77.0.
div.addEventListener ("contextmenu", (e) => ); Это сработало для меня в FF и Chrome.
Если ваша страница действительно зависит от того факта, что люди не смогут увидеть это меню, вы должны знать, что современные браузеры (например, Firefox) позволяют пользователю решать, действительно ли он хочет отключить его или нет. Таким образом, у вас нет никакой гарантии, что меню действительно будет отключено.
Вы не можете полагаться на контекстное меню, потому что пользователь может отключить его. Большинство веб-сайтов хотят использовать эту функцию, чтобы раздражать посетителя.
Что же тогда делать чистому сердцем? Я делаю html5-игру, и щелчок правой кнопкой мыши нарушает ее ход.
Это заблокирует любой доступ к контекстному меню (не только правой кнопкой мыши, но и с клавиатуры).
Однако на самом деле нет смысла добавлять блокировщик щелчка правой кнопкой мыши. Любой, у кого есть базовые знания о браузере, может просмотреть источник и извлечь необходимую информацию.
Там есть. Например, если вы создаете веб-приложение, работающее только с сенсорным экраном, где в любом случае нет щелчка правой кнопкой мыши. с вашим кодом разработчик может предотвратить уродливое стандартное поведение, такое как всплывающее контекстное меню.
А также в моем случае: когда вы открываете контекстное меню, вы можете щелкнуть правой кнопкой мыши на самом элементе меню, и он откроет меню браузера по умолчанию. Это действительно раздражает, особенно когда ваша мышь сломана и дважды щелкает правой кнопкой мыши.
Это должен быть принятый ответ.
если вы используете JQuery, вы можете добавить его при загрузке страницы. $ ('тело'). attr ('oncontextmenu', 'вернуть ложь;')
если вы используете VanillaJS: document.body.addEventListener ("contextmenu", function (evt) );
@GuyT Вы можете отремонтировать мышей, которые щелкают призраками, потратив немного времени и терпения. Проблема в том, что внутренний переключатель потерял напряжение. Откройте мышь, осторожно откройте переключатель с помощью кнопки ореола, снимите и осторожно согните натяжной провод, соберите довольно крошечный переключатель, закройте все, и вы сэкономили от 20 до 150 долларов на покупке новой мыши. Найдите руководство для вашей конкретной марки / модели, чтобы узнать, чего ожидать. Когда оборудование неисправно, это не совсем проблема программного обеспечения. Мыши Logitech известны своим призрачным щелчком.
Спасибо! Я реализую вариант рисования с помощью мыши, так что это действительно полезно.
Я использовал это:
Затем я ловлю свойство e.keyCode в этих двух последних функциях - если e.keyCode == 93, я знаю, что пользователь либо отпустил правую кнопку мыши, либо нажал / отпустил клавишу контекстного меню.
больше не работает
Другие вопросы по теме
Как отключить контекстное меню по умолчанию для определенных элементов в Mozilla с помощью Prototype?
Похожие вопросы
Находите ответы на сложные технические вопросы по программированию, с которыми сталкиваются инженеры по всему миру в своей ежедневной практике на сайте RedDeveloper.
Как отключить щелчок правой кнопкой мыши на вкладке листа в Excel?
В этой статье говорится об отключении щелчка правой кнопкой мыши на вкладке листа в книге. Пожалуйста, сделайте шаг за шагом, как показано ниже.
Отключить щелчок правой кнопкой мыши на вкладке листа в Excel с кодом VBA
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Следующий сценарий VBA может помочь вам отключить контекстное меню на вкладке листа в Excel. Пожалуйста, сделайте следующее.
1. В книге необходимо отключить функцию щелчка правой кнопкой мыши на вкладке листа, нажмите кнопку другой + F11 клавиши одновременно, чтобы открыть Окно Microsoft Visual Basic для приложений.
2. в Microsoft Visual Basic для приложений окно, дважды щелкните Эта рабочая тетрадь налево Проекты под застройку панели, затем скопируйте и вставьте следующий код VBA в ThisWorkbook (Код) окно. Смотрите скриншот:
Код VBA: отключить щелчок правой кнопкой мыши на вкладке листа в Excel
3. Затем нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.
4. Нажмите Файл > Сохранить как. В Сохранить как диалоговое окно, укажите папку, в которой вам нужно сохранить книгу, назовите ее в Имя файла коробка, как вам нужно, и выберите Excel Macro-Enabled Workbook из файла Сохранить как тип раскрывающийся список и, наконец, щелкните Сохраните кнопку.
Теперь книга сохранена как книга Excel с поддержкой макросов, а функция щелчка правой кнопкой мыши на вкладке листа отключена при использовании этой книги.
Как отключить контекстное меню на указанном листе или всей книге в Excel?
Вы знаете, как отключить контекстное меню в Excel? В этой статье будут показаны способы отключения контекстного меню не только на указанном листе, но и во всей книге.
Отключить меню правой кнопки мыши на указанном листе с кодом VBA
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
В этом разделе говорится об отключении контекстного меню на указанном листе с помощью метода VBA. Пожалуйста, сделайте следующее.
1. Откройте рабочий лист, для которого нужно отключить контекстное меню, щелкните правой кнопкой мыши вкладку листа и затем щелкните Просмотреть код из контекстного меню.
2. Затем Microsoft Visual Basic для приложений всплывает окно. Скопируйте и вставьте приведенный ниже сценарий VBA в окно кода.
Код VBA: отключить контекстное меню на указанном листе в Excel
3. нажмите другой + Q ключи для выхода из Microsoft Visual Basic для приложений окно.
С этого момента, когда вы попытаетесь щелкнуть правой кнопкой мыши любую ячейку этого рабочего листа, вы получите диалоговое окно Kutools for Excel, как показано ниже.
Отключить меню правой кнопки мыши во всей книге с кодом VBA
Вы также можете отключить контекстное меню во всей книге с помощью следующего кода VBA.
1. В книге вам нужно отключить контекстное меню, нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окно, пожалуйста, дважды щелкните Эта рабочая тетрадь слева Проекты под застройку панели, затем скопируйте и вставьте приведенный ниже код VBA в ThisWorkbook (Код) окно. Смотрите скриншот:
Код VBA: отключить контекстное меню во всей книге в Excel
3. нажмите другой + Q ключи для выхода из Microsoft Visual Basic для приложений окно.
С этого момента, когда вы пытаетесь щелкнуть правой кнопкой мыши любую ячейку в книге, появится диалоговое окно Kutools for Excel, чтобы напомнить вам, что контекстное меню было отключено. Смотрите скриншот:
здравствуйте. Пишу проект на VBA. Делаю свое контекстное меню для листа. Меню создается при первом его вызове макросом и удаляется после закрытия книги. Вызывается оно таким кодом
[vba]
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Application.CommandBars("cell").Enabled = False
Application.CommandBars("List Range Popup").Enabled = False
Application.CommandBars("row").Enabled = False
Application.CommandBars("column").Enabled = False
On Error GoTo 2
1: Application.CommandBars("меню1").ShowPopup
Application.OnTime Now + TimeValue("00:00:01"), ThisWorkbook.Name & "!module1.restore"
Exit Sub
2: menu = 1
Application.Run "'" & ThisWorkbook.Name & "'!module1.create_menu(menu)"
GoTo 1
End Sub
Sub restore()
Application.CommandBars("cell").Enabled = True
Application.CommandBars("list range popup").Enabled = True
Application.CommandBars("row").Enabled = True
Application.CommandBars("column").Enabled = True
End Sub
здравствуйте. Пишу проект на VBA. Делаю свое контекстное меню для листа. Меню создается при первом его вызове макросом и удаляется после закрытия книги. Вызывается оно таким кодом
[vba]
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Application.CommandBars("cell").Enabled = False
Application.CommandBars("List Range Popup").Enabled = False
Application.CommandBars("row").Enabled = False
Application.CommandBars("column").Enabled = False
On Error GoTo 2
1: Application.CommandBars("меню1").ShowPopup
Application.OnTime Now + TimeValue("00:00:01"), ThisWorkbook.Name & "!module1.restore"
Exit Sub
2: menu = 1
Application.Run "'" & ThisWorkbook.Name & "'!module1.create_menu(menu)"
GoTo 1
End Sub
Sub restore()
Application.CommandBars("cell").Enabled = True
Application.CommandBars("list range popup").Enabled = True
Application.CommandBars("row").Enabled = True
Application.CommandBars("column").Enabled = True
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Application.CommandBars("cell").Enabled = False
Application.CommandBars("List Range Popup").Enabled = False
Application.CommandBars("row").Enabled = False
Application.CommandBars("column").Enabled = False
On Error GoTo 2
1: Application.CommandBars("меню1").ShowPopup
Application.OnTime Now + TimeValue("00:00:01"), ThisWorkbook.Name & "!module1.restore"
Exit Sub
2: menu = 1
Application.Run "'" & ThisWorkbook.Name & "'!module1.create_menu(menu)"
GoTo 1
End Sub
Sub restore()
Application.CommandBars("cell").Enabled = True
Application.CommandBars("list range popup").Enabled = True
Application.CommandBars("row").Enabled = True
Application.CommandBars("column").Enabled = True
End Sub
Все. Разобрался. Оказывается в excel есть 2 меню с одинаковым именем Cell - c индексами 29 и 32
заменил [vba]
Всем добрый день. Решил выложил кусок своей надстройки, а именно ту ее часть которая представлена в виде контекстного меню ячейки. Может кому пригодится. Добавляет на ПКМ ряд меню с подменю. Поскольку я финансист - часть разработок специально для этой сферы, типа самых часто используемых форматов, макрос пересчета диапазона для супертяжелых книг. Часть собрана с миру по нитке, часть писал сам. Расскажу вкратце, там в принципе все интуитивно понятно:
Меню Столбцы удобно тем, что для проведения операций над всем столбом не нужно его выделять - достаточно стоять в любой его части. Можно выделить несколько смежных ячеек и операция будет применена ко всем столбцам.
Меню строки - то же самое.
Операция - удалить до конца означает что будет удалены все столбцы справа от активной ячейки (ниже активной строки)
В меню форматы спец/копия перед тем как провести операцию нужно выделить интересующий диапазон.
Операции копировать только видимые и вставить только в видимые, предполагают что вы сначала выделяете нужные данные, затем нажимаете пункт копировать видимые,
переходите на нужное место и жмете макрос вставить/вставить в видимые.
Копировать для вставки в новые строки удобен когда нужно часть данных вставить в существующий массив со вставкой новых строк, чтобы потом протянуть имеющиеся формулы.
В меню Ячейки все в принципе понятно - убрать формулы работает как копировать - вставить как значения, а "вставить как значения" предполагает, что данные уже были скопированы (используется для вставки в другое место). Для пересчета диапазона - его нужно выделить.
В меню диапазоны - реализованы протягивания через пустые и не смежные ячейки. Протянуть диапазон - протягивают все столбцы (справа, слева, не смежные) в текущем диапазоне по самому длинному столбцу. Те кому часто приходится протягивать и справа и слева поймут.
В меню фильтров есть несколько фильтров к дополнение к основным - с копированием на новый лист, с перемещением на новый лист (данные со старого удаляются), удаление по значению в текущей ячейке, копирование не равных значению в текущей ячейке, фильтрация и удаление не равных (очень удобно для пустых).
Тестировал только в Excel 2007 за неимением другого.
Всем добрый день. Решил выложил кусок своей надстройки, а именно ту ее часть которая представлена в виде контекстного меню ячейки. Может кому пригодится. Добавляет на ПКМ ряд меню с подменю. Поскольку я финансист - часть разработок специально для этой сферы, типа самых часто используемых форматов, макрос пересчета диапазона для супертяжелых книг. Часть собрана с миру по нитке, часть писал сам. Расскажу вкратце, там в принципе все интуитивно понятно:
Меню Столбцы удобно тем, что для проведения операций над всем столбом не нужно его выделять - достаточно стоять в любой его части. Можно выделить несколько смежных ячеек и операция будет применена ко всем столбцам.
Меню строки - то же самое.
Операция - удалить до конца означает что будет удалены все столбцы справа от активной ячейки (ниже активной строки)
В меню форматы спец/копия перед тем как провести операцию нужно выделить интересующий диапазон.
Операции копировать только видимые и вставить только в видимые, предполагают что вы сначала выделяете нужные данные, затем нажимаете пункт копировать видимые,
переходите на нужное место и жмете макрос вставить/вставить в видимые.
Копировать для вставки в новые строки удобен когда нужно часть данных вставить в существующий массив со вставкой новых строк, чтобы потом протянуть имеющиеся формулы.
В меню Ячейки все в принципе понятно - убрать формулы работает как копировать - вставить как значения, а "вставить как значения" предполагает, что данные уже были скопированы (используется для вставки в другое место). Для пересчета диапазона - его нужно выделить.
В меню диапазоны - реализованы протягивания через пустые и не смежные ячейки. Протянуть диапазон - протягивают все столбцы (справа, слева, не смежные) в текущем диапазоне по самому длинному столбцу. Те кому часто приходится протягивать и справа и слева поймут.
В меню фильтров есть несколько фильтров к дополнение к основным - с копированием на новый лист, с перемещением на новый лист (данные со старого удаляются), удаление по значению в текущей ячейке, копирование не равных значению в текущей ячейке, фильтрация и удаление не равных (очень удобно для пустых).
Тестировал только в Excel 2007 за неимением другого. IgorStorm
Читайте также: