Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.06.2017, 21:42
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

TypeError: Illegal constructor Chrome
Код работает в Opera, в Chrome не работает:
try
{
	function fire(){
		var press=new KeyboardEvent('keypress',{
			key:'a',
			bubbles:true,
			cancelable:true,
			isTrusted:true,
			keyCode:97,
			charCode:97,
			wich:97,
			view:window
		});
		document.body.dispatchEvent(press);
	};
	document.body.addEventListener("keypress",function(event){
			alert("Вы нажали "+event.key);
	},false);
	fire();
}
catch(err)
{
	alert(err);
}
Ответить с цитированием
  #2 (permalink)  
Старый 10.06.2017, 22:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

vitorrio,
строка 11 which и может document.body ещё нет?
Ответить с цитированием
  #3 (permalink)  
Старый 10.06.2017, 22:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

vitorrio,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>

<script>

try
{
  function fire(){
    var press=new KeyboardEvent('keypress',{
      key:'а',
      bubbles:true,
      cancelable:true,
      isTrusted:true,
      keyCode:97,
      charCode:97,
      which:97,
      view:window
    });
    document.body.dispatchEvent(press);
  };
  document.body.addEventListener("keypress",function(event){
      alert("Вы нажали "+event.key);
  },false);
  fire();
}
catch(err)
{
  alert(err);
}


  </script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 10.06.2017, 22:54
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

Та же самая ошибка, ошибка в конструкции "var press=new KeyboardEvent('keypress',{
"
Ответить с цитированием
  #5 (permalink)  
Старый 10.06.2017, 23:00
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

var keyEvent = document.createEvent('KeyboardEvent');
Object.defineProperty(keyEvent, 'keyCode', { 
                         get : function() {
                                 return this.keyCodeVal;
                         }
                        });
keyEvent.initKeyboardEvent('keypress', true, false, null, 0, false, 0, false, 77, 0);
keyEvent.keyCodeVal = 77;
document.body.dispatchEvent(keyEvent);

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск