Вот мой путь; этот фрагмент JavaScript должен идти в заголовок вашей страницы:
<script>
process = function()
{
window.open('about:blank', 'popup', 'width=320,height=240,resizeable=no');
document.login.setAttribute('target', 'popup');
document.login.setAttribute('onsubmit', '');
document.login.submit();
};
</script>
А это примерная форма для демонстрационных целей:
<form action="handle.html" method="get" name="login" onsubmit="process(); return false;">
Username: <input type="text" name="username" id="username" /><br />
<input type="submit" />
</form>
Теперь вот что происходит: во-первых, мы настраиваем форму и присваиваем ей атрибут onsubmit
, который указывает ей запускать функции process()
и return false;
вместо обычной отправки; с этого момента эта функция вступает во владение и создает всплывающее окно, присваивая ему имя и некоторые функции (во что бы то ни стало, добавляя любые лишние, которые вы хотите), а затем внимание возвращается к форме, где мы теперь устанавливаем target
атрибут для имени окна, которое мы только что создали.
Затем мы должны прояснить, что onsubmit
, которое мы установили ранее, или эта та же самая вещь произойдет снова, и это, конечно, не то, что вы хотите. Наконец, мы просто снова отправили форму, и теперь она передает всю информацию в всплывающее окно; оттуда он просто получает handle.html
(или что вы в итоге вызываете на своей странице обработки) для работы с данными.
Надеюсь, я помог.