2015-10-27 7 views
3

Привет, ребята, я пытаюсь имитировать ctrl + w при щелчке по изображению. Так у меня есть:Имитировать CTRL + W onclick на элементе

<img id="target" src="something.png"/> 

И я пытаюсь добавить событие щелчка на этом образе, который называют функцию, которая имитирует Ctrl + ж с клавиатуры.

Я подумал, что это должно быть что-то вроде этого:

function closeWindow(){ 
      var theObject = document.getElementById("target"); 

      var pressEvent = document.createEvent ("KeyboardEvent"); 
      pressEvent.initKeyEvent("keypress", true, true, window, true, false, false, false, 87, 0); 
      theObject.dispatchEvent(pressEvent); 
     } 

Моделируемой Ctrl + ж должны иметь такое же событие, как Ctrl + ж прессованного пользователем с клавиатуры, только я необходимо закрыть вкладку, нажав кнопку/изображение.

И НЕТ, я не могу использовать window.close();, так как этот метод не работает, если страница не была создана скриптом.

Где я ошибаюсь?

+0

http://stackoverflow.com/questions/19761241/window-close-and-self-close-do-not-close-the-window-in-chrome – apokryfos

ответ

4

Вы не можете отправлять поддельные нажатия клавиш на браузер Chrome с веб-страницы.

Даже если бы вы могли, это сделало бы инструкции на window.close довольно бессмысленными, если бы вы могли обойти их, притворяясь нажатиями клавиш.

Вы не можете закрыть окно/вкладку, которую вы не открыли. Он не принадлежит вам.

+1

Если я использую ctrl + w с клавиатуры, это работает, Я не вижу причины, почему я не могу подделать код ctrl + w – OzZie

+0

Я думаю, что браузер не знает, нажал ли я им пользователь с клавиатуры или я имитировал их из кода, он просто получает код (87 + true - ctrlkey), и он должен сделать трюк – OzZie

+1

@OzZie Браузер не такой глупый. Он знает, что произошло с аппаратной клавиатуры и что произошло с javascript. – apokryfos

Смежные вопросы