JavaScript моделирует щелчок правой кнопкой через код

Я бы рекомендовал использовать PDO (объекты данных PHP) для запуска параметризованных SQL-запросов.

Это не только защищает от SQL-инъекции, но и ускоряет выполнение запросов.

И используя функции PDO, а не mysql_, mysqli_ и pgsql_, вы делаете свое приложение немного более абстрактным из базы данных, в редких случаях, когда вам нужно переключать поставщиков баз данных .

27
задан ROMANIA_engineer 19 October 2017 в 17:35
поделиться

4 ответа

попробуйте это вместо этого, обоснуйте, какие вещи не вполне работали, то, что контекстное меню на самом деле связывается с oncontextmenu событием.

function contextMenuClick(element){
    var evt = element.ownerDocument.createEvent('MouseEvents');

    var RIGHT_CLICK_BUTTON_CODE = 2; // the same for FF and IE

    evt.initMouseEvent('contextmenu', true, true,
         element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false,
         false, false, false, RIGHT_CLICK_BUTTON_CODE, null);

    if (document.createEventObject){
        // dispatch for IE
       return element.fireEvent('onclick', evt)
     }
    else{
       // dispatch for firefox + others
      return !element.dispatchEvent(evt);
    }
}
27
ответ дан leiyou 28 November 2019 в 05:18
поделиться

Просто в придачу вот немного doco на параметрах:

var myEvt = document.createEvent('MouseEvents');
myEvt.initMouseEvent(
   'click'          // event type
   ,true           // can bubble?
   ,true           // cancelable?
   ,window      // the event's abstract view (should always be window)
   ,1              // mouse click count (or event "detail")
   ,100           // event's screen x coordinate
   ,200           // event's screen y coordinate
   ,100           // event's client x coordinate
   ,200           // event's client y coordinate
   ,false         // whether or not CTRL was pressed during event
   ,false         // whether or not ALT was pressed during event
   ,false         // whether or not SHIFT was pressed during event
   ,false         // whether or not the meta key was pressed during event
   ,1             // indicates which button (if any) caused the mouse event (1 = primary button)
   ,null          // relatedTarget (only applicable for mouseover/mouseout events)
); 
9
ответ дан Mark 28 November 2019 в 05:18
поделиться

Большой вопрос!

я провел некоторое исследование, и кажется, что можно стрелять, событие от нажатия мыши как показывают здесь , и сделайте это щелчком правой кнопкой путем установки button или which свойство к 2 ( зарегистрированный здесь ).

, Возможно, этот код будет работать:

function rightClick(element){
  var evt = element.ownerDocument.createEvent('MouseEvents');

  var RIGHT_CLICK_BUTTON_CODE = 2; // the same for FF and IE

  evt.initMouseEvent('click', true, true,
      element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false,
      false, false, false, RIGHT_CLICK_BUTTON_CODE, null);

  if (document.createEventObject){
    // dispatch for IE
    return element.fireEvent('onclick', evt)
  }
  else{
    // dispatch for firefox + others
    return !element.dispatchEvent(evt);
  }
}
4
ответ дан orip 28 November 2019 в 05:18
поделиться

Вот более правильная версия, если Вы не заботитесь о том, где контекстное меню разожжено

function fireContextMenu(el) {
  var evt = el.ownerDocument.createEvent("HTMLEvents")
  evt.initEvent('contextmenu', true, true) // bubbles = true, cancelable = true

  if (document.createEventObject) {
    return el.fireEvent('oncontextmenu', evt)
  }
  else {
    return !el.dispatchEvent(evt)
  }
}

, Если Вы, нам, вероятно, придется использовать предыдущий, действительно договоритесь, это - поведение в IE, и заполните screenX, screenY, clientX, clientY и т.д. соответственно

3
ответ дан leiyou 28 November 2019 в 05:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: