Аватар для melihovgv
16 / 15 / 4
Регистрация: 12.06.2011
Сообщений: 842

Запутался между open и opener. Как отправить данные из opener в open

30.10.2012, 01:07. Показов 3752. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Открываю в родители новое окно через open
JavaScript
1
var openWindow = open("up_img.php","up_img","width=600,height=430");
В дочернем окне имеется обычная форма
HTML5
1
2
3
4
<form method="post" action="test.php">  
<b>Альтернативный текст (Alt):</b><input type="text" name="alt" size="40" >
<input type="submit" name="upload1" id="upload1" value="Готово" onclick="window.close()" > 
</form>
Если из дочерней формы отправляю $_POST, то все ок, а как из дочерней формы отправить $_POST в родитель?
Уже неделю мучаюсь над этим вопросом.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.10.2012, 01:07
Ответы с готовыми решениями:

Не работает opener
Всем привет. Есть url:http://mysite.com/index/main/index111.html Физически файла index111.html и папок таких нет, url формируется...

window.opener
&lt;html&gt; &lt;head&gt; &lt;title&gt;Первая форма&lt;/title&gt; &lt;script&gt; function display() { ...

Ошибка после выполнения window.opener.location.reload
Привет! После выполнения команды window.opener.location.reload IE выдает msgBox 'The page cannot be refreshed without resending the...

28
 Аватар для melihovgv
16 / 15 / 4
Регистрация: 12.06.2011
Сообщений: 842
01.11.2012, 15:37  [ТС]
Студворк — интернет-сервис помощи студентам
Господа, я понимаю, что Вам интересно поспорить, но как быть мне?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
01.11.2012, 15:43
Цитата Сообщение от melihovgv Посмотреть сообщение
но как быть мне?
а что у вас?
функцию myFunc () в конце-концов пристроили на родительской странице?
заработало?
------

и ещё вопросик
я посоветовал вам сохранить файл для дочернего окна в html-формате (с расширением *.html)
вы в своём примере представили этот файл как d.php
можно поинтересоваться - а зачем?
0
 Аватар для melihovgv
16 / 15 / 4
Регистрация: 12.06.2011
Сообщений: 842
01.11.2012, 16:14  [ТС]
r.php - родитель
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<script type="text/javascript">
function HTML_edit( action )
{
        area = document.getElementById('textfield'); // получаем объект поля ввода
        area.focus(); // перед началом работы переводим фокус на текстарею (иначе в IE не будет работать)
 
        // получаем выделенный текст и подготавливаем его к обработке
        if( document.getSelection )
        {
            document.getSelection();
 
            avalue = area.value;
            sel_length = avalue.length;
            sel_start = area.selectionStart;
            sel_end = area.selectionEnd;
            
            left_side_text = avalue.substring(0, sel_start);
            selected_text = avalue.substring(sel_start, sel_end);
            selected_text1 = avalue.substring(0, sel_start);
            right_side_text = avalue.substring(sel_end, sel_length);
        }
        // для остальных браузеров (IE), не понимающих работу с «выделениями», приведенную выше
        else if( document.selection ) selected_text = document.selection.createRange().text;
        
        // обрабатываем выделенный текст на основе переданного аргумента action
        switch( action )
        {
 
case 'tegImage2':
if( !selected_text )
{
var GlobalStroka = ''; 
 window.open ('d.html', '_blank', 'width=654, height=234');
 function myFunc (alternative_string)
{
GlobalStroka = alternative_string;
// переменная GlobalStroka получит своё значение
// только если функция запустится
// а запускается она из дочернего окна
// и оттуда же получает значение
alert ("В текстовое поле дочернего окна вы ввели \"" + GlobalStroka + "\"");
}
}
break;
 
        }
        // возвращаем результаты работы функции обратно в поле ввода текста
        if( prefix != null && suffix != null )
        {
            if( document.getSelection ) area.value = left_side_text + prefix + selected_text + suffix + right_side_text;
            else if( document.selection ) document.selection.createRange().text = prefix + selected_text + suffix;
        }
    }
    
</script>

HTML5
1
2
3
<input type="button" value="IMG2"  onclick="HTML_edit('tegImage2')"  />
<br />
<textarea cols="115" rows="15" wrap="off" id="textfield"></textarea>
d.html -дочернее окно
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Окошко</title>
</head>
<body>
<h2>Введи альтернативный текст! А то хуже будет...</h2>
<input id="myID">
<input type="button" value="Нажми, когда введёшь"
       onclick="alert ('Молодец, что ввёл!');
                window.opener.myFunc (document.getElementById ('myID').value);
                self.close ()">
</html>
</html>
Проверяю в яндекс хром
Не работает.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
01.11.2012, 16:35
"я вам сичас один умный вещ скажу, толька ти не абижайся!" (с)

1. <script>вот это всё --- глобальный контекст</script>

в глобальном контексте к любой переменной можно обратиться через объект window
--------

2. <script>глобально...глобально... function FuncName () {локально}...глобально...глобально</script>

сама функция - её имя funcName () - она ещё в глобальном контексте

а вот всё то, что в блоке из фигурных скобок функции - это локальный контекст
это - чёрный ящик с непрозрачными стенками без окон и дверей - ни снаружи, ни изнутри ничего не видно

единственная связь локального с глобальным - это через круглые скобки после имени функции - там могут быть параметры (из глобального контекста передаются) и внутри функции они превращаются в аргументы
=====

вы мою функцию засунули в "чёрный ящик", спрятали... не видит её объект window
0
 Аватар для melihovgv
16 / 15 / 4
Регистрация: 12.06.2011
Сообщений: 842
01.11.2012, 16:43  [ТС]
kalabuni, я где-то понимаю, но может показать рабочий пример?Из моих данных.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
01.11.2012, 16:56
блин, я вам даже спецстраницу сделал -- что может быть ещё "рабочее"?

Не по теме:



слушайте, есть такое понятие - "не дано человеку!"

мне вот, например, не дано быть певцом - слух вроде есть, а вот голосом Господь обделил...
и чтецом быть не могу - заикаюсь...
и футболистом никак - хромой я с рождения...
моделью меня тоже не берут - рожей и комплекцией не вышел...

ну так я и не занимаюсь всеми вышеперечисленными делами, ибо понимаю, что "не дано мне"
а прозябаю на ниве программирования
да ещё в шахматы играю - лузеров в выходные в шахматном клубе на деньги опускаю


имхо, программирование - оно "не ваше", вам не кажется?
мей би, в вас художник умирает?
или танцор?
или режиссёр голливудский?
или из вас получится лучший в мире фрезеровщик
попробуйте, а?

0
 Аватар для melihovgv
16 / 15 / 4
Регистрация: 12.06.2011
Сообщений: 842
01.11.2012, 17:02  [ТС]
kalabuni, давайте без лирики!
Исходя из Ваших слов нужно данную переменную alert ("В текстовое поле дочернего окна вы ввели \"" + GlobalStroka + "\""); вынести за функцию.


JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
case 'tegImage2':
if( !selected_text )
{
var GlobalStroka = ''; 
 window.open ('d.html', '_blank', 'width=654, height=234');
 function myFunc (alternative_string)
{
GlobalStroka = alternative_string;
// переменная GlobalStroka получит своё значение
// только если функция запустится
// а запускается она из дочернего окна
// и оттуда же получает значение
 
}
if (GlobalStroka==true){alert ("В текстовое поле дочернего окна вы ввели \"" + GlobalStroka + "\"");}
}
break;
И так не работает.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
01.11.2012, 18:28
финиш

я пишу о функции myFunc () и о её месте в вашем скриптовом блоке,
а вы почему-то про строку показа глобальной переменной...
-----

1. найдите в вашем коде родительской страницы самый первый открывающий тег <script>
2. сразу после этого открывающего тега, начиная со следующей строчки напишите код моей функции myFunc (), чтобы получилось следующее
JavaScript
1
2
3
4
5
6
<script>
function myFunc (alternative_string)
{
GlobalStroka = alternative_string;
} 
... а вот тут всё ваше
3. ваши последние изменения кода c alert () отмените

4. ко мне, пожалуйста, с вашими вопросами не обращайтесь... хотя бы недельку, я от вас должен отдохнуть
0
 Аватар для melihovgv
16 / 15 / 4
Регистрация: 12.06.2011
Сообщений: 842
01.11.2012, 19:48  [ТС]
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<script type="text/javascript">
var GlobalStroka = ''; 
function myFunc (alternative_string)
{
GlobalStroka = alternative_string;
// переменная GlobalStroka получит своё значение
// только если функция запустится
// а запускается она из дочернего окна
// и оттуда же получает значение
//alert ("В текстовое поле дочернего окна вы ввели \"" + GlobalStroka + "\"");
}
 
function HTML_edit( action )
{
        area = document.getElementById('textfield'); // получаем объект поля ввода
        area.focus(); // перед началом работы переводим фокус на текстарею (иначе в IE не будет работать)
 
        // получаем выделенный текст и подготавливаем его к обработке
        if( document.getSelection )
        {
            document.getSelection();
 
            avalue = area.value;
            sel_length = avalue.length;
            sel_start = area.selectionStart;
            sel_end = area.selectionEnd;
            
            left_side_text = avalue.substring(0, sel_start);
            selected_text = avalue.substring(sel_start, sel_end);
            selected_text1 = avalue.substring(0, sel_start);
            right_side_text = avalue.substring(sel_end, sel_length);
        }
        // для остальных браузеров (IE), не понимающих работу с «выделениями», приведенную выше
        else if( document.selection ) selected_text = document.selection.createRange().text;
        
        // обрабатываем выделенный текст на основе переданного аргумента action
        switch( action )
        {
 
case 'tegImage2':
if( !selected_text )
{
//if(myFunc(GlobalStroka)===true){alert(""+ GlobalStroka +"");}
window.open ('d.html', '_blank', 'width=654, height=234');
prefix = '<img src="/foto/'+ myFunc() +'">';
suffix = '\n';
}
break;
 
        }
        // возвращаем результаты работы функции обратно в поле ввода текста
        if( prefix != null && suffix != null )
        {
            if( document.getSelection ) area.value = left_side_text + prefix + selected_text + suffix + right_side_text;
            else if( document.selection ) document.selection.createRange().text = prefix + selected_text + suffix;
        }
    }
    
</script>
HTML5
1
2
3
<input type="button" value="IMG2"  onclick="HTML_edit('tegImage2')"  />
<br />
<textarea cols="115" rows="15" wrap="off" id="textfield"></textarea>
Действительно он рабочий)Подробнее ответа не нашел)
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Окошко</title>
</head>
<body>
<h2>Введи альтернативный текст! А то хуже будет...</h2>
<input id="myID">
<input type="button" value="Нажми, когда введёшь"
       onclick="window.opener.myFunc (document.getElementById ('myID').value);
                self.close ()">
</html>
</html>

Последний вопрос, как передать значение сюда prefix = '<img src="/foto/'+ myFunc() +'">';???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2012, 19:48
Помогаю со студенческими работами здесь

Не отрабатывает opener.location.reload() для Internet Explorer
Пожалуйста подскажите почему у меня возникает ошибка при попытке обновить страницу из которой было вызвано модальное диаголовое окно в...

[ILINK32 Error] Fatal: Could not open .\Debug\Win32\Variant_1.ilf (project already open in IDE?)
Fatal: Could not open .\Debug\Win32\Variant_1.ilf (project already open in IDE?) на русском Fatal: Не удалось открыть \ Debug \...

Error: EMFILE: too many open files, open
Добрый день, подскажите плииз! Поймал ошибку &quot;Error: EMFILE: too many open files, open&quot; Чем это может грозить и как с этим бороться?...

Как настроить сеть между компами Linux open suse 11.3
Как настроить сеть между компами Linux open suse 11.3 есть интернет UTP идет с хаба с этого же кабеля надо взять сеть


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

Новые блоги и статьи
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru