Показать сообщение отдельно
  #1 (permalink)  
Старый 30.04.2013, 20:51
Аспирант
Отправить личное сообщение для ILL-JAH Посмотреть профиль Найти все сообщения от ILL-JAH
 
Регистрация: 24.03.2011
Сообщений: 93

не работает искуственное событие "click"
Здравствуйте.
Подскажите кто знает по реализации кросбраузерного искусственного события. Нежеследующий код не работает в Firefox. Не работает по причине того, что Firefox (и IE) не выполняют действия "по умолчанию" для искусственных событий типа "click". Хотя в Firefox метод dispatchEvent возвращает true. Как победить эту беду?

<head>
    <meta charset="utf-8" />
    <title>test</title>
  <style type="text/css">
    div { position: absolute; width: 200px; height: 20px; border: 1px solid red; }
    input { visibility: hidden; }
  </style>
</head>
<body>
  <div>
    <input type="file" />
  </div>
  <script type="text/javascript">
    document.getElementsByTagName("div").item(0).onclick = function ()
    {
      if (this.dispatchEvent)
      {
        var e = document.createEvent("MouseEvents");
        e.initMouseEvent("click", false, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        this.getElementsByTagName("input").item(0).dispatchEvent(e);
      }
    }
  </script>
</body>
Ответить с цитированием