Здравствуйте, уважаемые участники. Недавно начал разбираться с AJAX-ом. Решил сделать более удобную систему новостей. Пока без всяких там WYSIWYG и т.п. - просто textarea. На "главной" странице новостей находится кнопочка, при нажатии на которую методом open() вызывается всплывающее окно: <a href="java script:void(0);" onClick="ShowAddNewsForm();" id="btnAddNews">добавить новость</a> Сама функция ShowAddNewsForm() находится в подключаемом файле: function ShowAddNewsForm() { var options = ""; options += "directories = no,"; options += "height = 200,"; options += "width = 300,"; options += "left = 20,"; options += "top = 200,"; options += "menubar = no,"; options += "location = no,"; options += "scrollbars = no,"; options += "resizale = no,"; options += "status = no,"; options += "toolbar = no"; window.open("news/news_form.html", "_blank", options); } news_form.html представляет из себя довольно простой файл: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Добавить новость</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <link href="news_form.css" type="text/css" rel="stylesheet"> <script language="JavaScript" src="news_form.js"></script> </head> <body> <textarea id="txt">текст новости</textarea> <input type="checkbox" id="visible" value="visible"> опубликовать <input type="submit" id="btnAdd" value="добавить" onClick="AddNews()"> </body> </html> news_form.js: function AddNews() { var http_request = false; if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) http_request.overrideMimeType('text/plain'); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } http_request.onreadystatechange = function() { alertContents(http_request); }; http_request.open("POST", "news_add.php", true); http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;"); http_request.setRequestHeader("Charset", "windows-1251"); http_request.send("txt="+encodeURIComponent(document.getElementById("txt").value)); } function alertContents(http_request) { var resCode = 0; var resText = ""; if (http_request.readyState == 4) { if (http_request.status == 200) { resText = http_request.responseText; if(!(/^d+$/.test(resText))) resCode = 2; } else { resCode = 1; resText = "Не удалось подключиться к серверу."; } if(resCode > 0) alert(resText); else window.close(); } } Скрипт news_add.php пытается добавить новость в БД и, если новость успешно добавлена, возвращает id этой новости из таблицы БД. В противном случае возвращается текст ошибки. Т.е., если все "ОК", то вернется просто число, иначе - какой-то текст. JavaScript регулярным выражением проверяет ответ и, если это число (т.е. новость успешно добавлена), просто закрывает всплывающее окно. В противном случае вызывается alert() с текстом ошибки. Пока больше ничего не требуется. Проблема: Mozilla и FireFox ведут себя не очень хорошо - окно вовсе не закрывается сразу. Чтобы оно закрылось, необходимо кликнуть в любое его место. Если же просто где-нибудь во всплывающем окне расположить скрипт window.close() (например, в ссылке в окне close), то окошко закрывается нормально. Помогите, пожалуйста, решить проблему. С уважением, Евгений