Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Банальный вопрос по window.opener

420
30 октября 2009 года
Fobos
197 / / 10.03.2006
Друзья,
есть страница (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 находится в подкаталоге относительно родительского окна? Подскажите.
325
30 октября 2009 года
Franky
723 / / 10.08.2005
можно попробовать убрать window из
window.opener.document.getElementById('image').value
либо присвоить
<input type="text" id="image" name='image'>
и обратиться:
opener.document.forms['form_name'].image.value
420
31 октября 2009 года
Fobos
197 / / 10.03.2006
Цитата: Franky
можно попробовать убрать window из
window.opener.document.getElementById('image').value
либо присвоить
<input type="text" id="image" name='image'>
и обратиться:
opener.document.forms['form_name'].image.value


Нет, к сожаления ничего не помогло. Самое интересное, что при ошибке, по крайней мере, IE обычно выдавал в левом нижнем углу уведомление. А сейчас типо всё нормально, но ничего не вставляется. Я уже головой начинаю об клаву биться.:) Методом тыка уже какие-только варианты не перепробовал.

И файл переносил в ту же папку и подгружал оттуда, и нифига!
Чё ж делать то, блин. Обычно подобные глюки случались из-за бональной опечатки. А тут, ну уж 500 000 раз перепроверил, и ничего.:mad:

325
31 октября 2009 года
Franky
723 / / 10.08.2005
попробуй для наглядности вывести это значение в ДИВ через innerHTML...
кстати:
<?php echo $newName; ?>
можно записать короче:
<?=$newName; ?>
:)
420
31 октября 2009 года
Fobos
197 / / 10.03.2006
Цитата: Franky
попробуй для наглядности вывести это значение в ДИВ через innerHTML...


Собственно, изначально я хотел именно через innerHTML выводить уменьшенные картинки. Потом, когда ничего не получалось, начал с элементами формы мутить.

Попробую ещё.

Цитата: Franky

кстати:
<?php echo $newName; ?>
можно записать короче:
<?=$newName; ?>
:)


Ну, насколько я знаю, краткое выражение php может не работать на некоторых шаред-хостингах (а у меня именно такой), в зависимости от настроек php.ini (к которым у меня, к сожалению или к щастью нет доступа ) :)

420
31 октября 2009 года
Fobos
197 / / 10.03.2006
Боже мой! Ааа, я ржу. Вот это я совсем себе зрение ЭЛТ испортил :)))
[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, спасибо за ответы! :)
325
31 октября 2009 года
Franky
723 / / 10.08.2005
да пожалуйста, сам недавно сидел с похожей фигней :)
"Странно только то, что ни один браузер никакой ошибки JS не выдал"
если ты про ИЕ, то он выдает ее только 1 раз, потом при обновлении стр. на всё говорит ОК.
У меня была такая проблема:
добавить значение для поля <input type='hidden' name='my_form[]'>
Вот со скобками я "полюбился"! Пришлось сделать вставкой всего заполненного поля в ДИВ "родителя". Криво, но работает...
49K
01 ноября 2009 года
Gheorghii
11 / / 24.10.2009
В Мозилле есть прикольный тулбар WebDeveloper. С ним легко отслеживать js ошибки :)
325
01 ноября 2009 года
Franky
723 / / 10.08.2005
пробовал, но он не подсказывает как правильно :)
4
02 ноября 2009 года
mike
3.7K / / 01.10.2002
Попробуй firebug. Там есть DOM Insepctor.
420
02 ноября 2009 года
Fobos
197 / / 10.03.2006
Кстати firebug у меня стоит. И чё-то ничего в этом случае он мне не выдал. Правда я его (firebug) поставил на днях и особо не разбирался в нём.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог