Открытие нов. окна и передача параметра из него обратно

paganelp

Guest
Открытие нов. окна и передача параметра из него обратно

Подскажите, пожалуйста, каким образом сделать открывание нового окна, а затем передать из него параметры в вызвавшее его окно (при закрытии)

Сразу хочу признать что в JavaScript я понять не смог, как это делается.

Открываю новое окно так:
PHP:
$img_manager = "/lib/ImageManager/manager.php";
echo "
<script language=\"JavaScript\">
<!-- hide

function openWin2() {
myWin= open(\"$img_manager\", \"Менеджер изображений\", 
\"width=400,height=300,status=no,toolbar=no,menubar=no\");
}

// -->
</script>

<form>
<input type=\"button\" value=\"Открыть новое окно\" onClick=\"openWin2()\">
</form>
";
В вызванном скрипте есть кнопка, на которую видимо надо сделать процедуру закрытия (это мое мнение)

Кусок кода, который уже имеется в скрипте выглядит так:
PHP:
<button type="button" class="buttons" onclick="return refresh();">Refresh</button>
<button type="button" class="buttons" onclick="return onOK();">OK</button>
<button type="button" class="buttons" onclick="return onCancel();">Cancel</button>
Из этих кнопок работает только релоад.

А вот каким образом при закрытии этого окна (нажатии кнопки OK) передать вызвавшему его php-скрипту заданные параметры?
Причем из JavaScript-а надо передать имя выбранного файла (вроде что-то похожее на:
PHP:
this.field.value = params.f_file; //params.f_url
или
PHP:
this.field.value = params.f_url; //params.f_file
Каким образом это осуществляется?
 

rotoZOOM

ACM maniac
opener - объект типа window родительского окна.
Соответсвенно ты можешь делать все, что захочешь используя opener
 

paganelp

Guest
Странно, но я нашел эти функции в том скрипте:
PHP:
	function refresh()
	{
		var selection = document.getElementById('dirPath');
		updateDir(selection);
	}

	function onCancel() 
	{
		__dlg_close(null);
		return false;
	};

	function onOK() 
	{
		// pass data back to the calling window
		var fields = ["f_url", "f_alt", "f_align", "f_border", "f_horiz", "f_vert", "f_height", "f_width","f_file"];
		var param = new Object();
		for (var i in fields) 
		{
			var id = fields[i];
			var el = document.getElementById(id);
			if(id == "f_url" && el.value.indexOf('://') < 0 )
				param[id] = makeURL(base_url,el.value);
			else
				param[id] = el.value;
		}
		__dlg_close(param);
		return false;
	};
Только работает среди них только одна - refresh()

Пошел по цепочке (начал немного понимать JavaScript) и набрел на функцию
PHP:
function __dlg_close(val) {
	opener.Dialog._return(val); // Вот тут оно останавливается.
	window.close();
};
Видимо оно хочет передать параметры окну, которое его открыло. Но как их получить из того окна?

-~{}~ 25.01.05 23:16:

Проблема решена. Вопрос снят.
 

paganelp

Guest
Методом изучения JavaScript и просмотра неувиденного сразу файла example
:)
 
Сверху