не работает искуственное событие "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>
 | 
	
		
 
<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="text" />
</div>
<script type="text/javascript">
 document.getElementsByTagName("div")[0].onclick = function (){alert(1)};    
 if (this.dispatchEvent){
   var evObj = document.createEvent('MouseEvents');
   evObj.initEvent('click', true, true);
   document.getElementsByTagName("div")[0].dispatchEvent(evObj);
 }    
</script>
</body>
Ну а для ИЕ fireEvent http://help.dottoro.com/ljvtddtm.php  | 
	
		
 dmitriymar, спасибо, но мне нужно чтобы при клике по диву скрипт "кликал" по input type=file 
	 | 
	
		
 Цитата: 
	
 Если да -я не вижу проблемы, чтобы это сделать. Для этого достаточно потратить минуту и прочитать о методе getElementsByTagName. Сделать видимым по клику элемент инпут и сгенерировать для него событие клика Браузер блокирует всплывающие окна инпута . FF блокирует , Хром в обще не окрывает  | 
	
		
 видимость элемента ничего не меняет. если не вкладывать его в див, а расположить рядом, то ситуация останетса такой же. А спрятал я его для того, чтобы сделать свою кнопку вместо дефолтного серого прямоУГольника с надписью "Обзор. 
	 | 
	
		
 dmitriymar, 
	помню такое обсуждали вроде полтора года назад, в FF с input type="file" вообще всё строго  | 
	
		
 Dim@, 
	Я не читал к сож, но предполагал). Просто по коду было непонятно на чём хочет кликнуть -на невидимом элементе, или это запарка  | 
	
		
 dmitriymar, 
	понятно  | 
	
		
 Всё оказалось до безобразия просто и без скриптов: input сделал прозрачным.:lol: 
	 | 
	
		
 ILL-JAH, 
	так он и был прозрачным, ведь в css 
input { visibility: hidden; }
 | 
	
		
 visibility: hidden и opacity 0 - это, как говорят в Одессе, 2 большие разницы. 
	 | 
	
		
 Я у себя на сайте делал свою кнопку "обзор", всё очень просто, только в IE работать отказывается. 
	
<form method="post" enctype="multipart/form-data" style="display:none">
   <input type="file" id="file" onchange="document.getElementById('file_send').click()" />
   <input type="sumbit" id="file_send" />
</form>
<input type="button" value="Своя кнопка" onclick="document.getElementById('file').click()" />
 | 
	
		
 Ruslan_xDD, 
	попробуй change  | 
	
		
 Dim@, странно, теперь каким-то магическим образом всё и с click стало работать, хотя ничего не изменял. 
	 | 
	
		
 Ruslan_xDD, 
	тем лучше :)  | 
| Часовой пояс GMT +3, время: 14:42. |