Банальный вопрос по window.opener
есть страница (index.php), с которой открывается дочерняя страничка (plugins/upload.php) загрузки картинки функцией:
[HTML]
<script type="text/javascript">
function UpImWnd()//Функция открытия дочернего окна загрузки
{
LoadWindow=window.open("plugins/upload.php","","width=500,height=480,toolbars=no,status=no");
}
</script>
<input type="text" id="image">
[/HTML]
На той (дочерней) странице за 2 шага происходит загрузка картинки, всякие там ПХП преоразования и т.п. В конечном итоге на шаге 2 отображается уже загруженная картинка с событием onclick, в котором простенькая JS функция для вставки путя к картинке в элемент родительского окна.
[HTML]
<script language="JavaScript" type="text/javascript">
function insertImage();
{
window.opener.document.getElementById('image').value = "<?php echo $newName; ?>";
}
</script>
...
<?php
echo "<img border=0 onclick=\"insertImage();\" src=\"".IM_SO_UPLOAD_HTTP.$newName."\">";
?>
[/HTML]
Так вот к сожалению не срабатывает код вставки в элемент родительского окна. Может это из-за того, что upload находится в подкаталоге относительно родительского окна? Подскажите.
window.opener.document.getElementById('image').value
либо присвоить
<input type="text" id="image" name='image'>
и обратиться:
opener.document.forms['form_name'].image.value
window.opener.document.getElementById('image').value
либо присвоить
<input type="text" id="image" name='image'>
и обратиться:
opener.document.forms['form_name'].image.value
Нет, к сожаления ничего не помогло. Самое интересное, что при ошибке, по крайней мере, IE обычно выдавал в левом нижнем углу уведомление. А сейчас типо всё нормально, но ничего не вставляется. Я уже головой начинаю об клаву биться.:) Методом тыка уже какие-только варианты не перепробовал.
И файл переносил в ту же папку и подгружал оттуда, и нифига!
Чё ж делать то, блин. Обычно подобные глюки случались из-за бональной опечатки. А тут, ну уж 500 000 раз перепроверил, и ничего.:mad:
кстати:
<?php echo $newName; ?>
можно записать короче:
<?=$newName; ?>
:)
Собственно, изначально я хотел именно через innerHTML выводить уменьшенные картинки. Потом, когда ничего не получалось, начал с элементами формы мутить.
Попробую ещё.
кстати:
<?php echo $newName; ?>
можно записать короче:
<?=$newName; ?>
:)
Ну, насколько я знаю, краткое выражение php может не работать на некоторых шаред-хостингах (а у меня именно такой), в зависимости от настроек php.ini (к которым у меня, к сожалению или к щастью нет доступа ) :)
[HTML]
<script language="JavaScript" type="text/javascript">
function insertImage();
{
window.opener.document.getElementById('image').value = "<?php echo $newName; ?>";
}
</script>
[/HTML]
Как всегда тупо опечатка, и столько времени отняла!
function insertImage();
{
надо исправить было на function insertImage()
{
Просто убрать точку с запятой. :D
Блин, аж не удобно, что из-за такой глупости тему создал :)
Странно только то, что ни один браузер никакой ошибки JS не выдал, почему-то. Даже спецом попробовал уже с работающей функцией вставить вместо innerHTML innerHjujktTML (от балды), и ни один ошибки не показал. Просто функция не срабатывала. Обычно я опечатки именно по сообщениям браузера находил. Всё, буду JS в Visual Web Developer писать, раз такой невнимательный.
Franky, спасибо за ответы! :)
"Странно только то, что ни один браузер никакой ошибки JS не выдал"
если ты про ИЕ, то он выдает ее только 1 раз, потом при обновлении стр. на всё говорит ОК.
У меня была такая проблема:
добавить значение для поля <input type='hidden' name='my_form[]'>
Вот со скобками я "полюбился"! Пришлось сделать вставкой всего заполненного поля в ДИВ "родителя". Криво, но работает...