Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886

Выполнить действие после загрузки страницы в новом окне.

05.06.2019, 16:01. Показов 2016. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
JavaScript
1
2
3
4
5
6
7
var newWindow = window.open(...);
if (newWindow.addEventListener) {
    newWindow.addEventListener('load', myFunction, false);
} 
else if (config.contentNewWindow.attachEvent) {
    newWindow.attachEvent('onload', myFunction, false);
}
Проблема в том, что newWindow.addEventListener появляется не сразу. После выполнения строки 1 в течении некоторого времени newWindow не содержит addEventListener, и подключать листенер ещё рано. А через некоторое время документ загрузится полностью, и подключать листенер уже поздно (событие уже произошло).
Есть ли надёжный способ, не зависящий от скорости открытия окна и загрузки страницы?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.06.2019, 16:01
Ответы с готовыми решениями:

Выполнить функцию после нажатии кнопки в новом окне
Есть такая задача: сделать так, что при нажатии на сайте кнопки "открыть окно", открывалось новое окно, в котором есть кнопка, и если...

Выполнить действие после загрузки страницы WebBrowser
У меня в форме есть webbrowser. Он переходит по определенной ссылке и нажимает там кнопку. После чего через 100 мс на странице появляется...

TChromium сделать действие после загрузки страницы
TChromium, нужно сделать действие после загрузки страницы, всё не как не получается. Прошу помочь, заранее благодарен. P.S. Действие...

9
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
05.06.2019, 17:29
Shamil1, что-то Вы намудрили - вот здесь подробно расписано: https://learn.javascript.ru/window-methods раздел доступ к новому окну.
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
06.06.2019, 12:15  [ТС]
Цитата Сообщение от atanov Посмотреть сообщение
вот здесь подробно расписано
Не работает.
Функция, заданная через "newWin.onload = function() {...}", не вызывается.

Добавлено через 2 минуты
test1.html:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head>
<title>Test page</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
    function myFunction() {
        var newWin = window.open('D:\\Work\\Temp\\popup1.html', 'example', 'width=600,height=400');
        newWin.onload = function() {
            newWin.document.getElementById("demo").innerHTML = "Bye!";
        }
    }
// ]]>
</script>
</head>
<body>
     <button onclick="myFunction()">Click me</button> 
</body>
</html>
popup1.html:
XML
1
2
3
4
5
6
7
8
<html>
<head>
    <title>Test popup</title>
</head>
<body>
     <p id="demo">Hello!</p>
</body>
</html>
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
06.06.2019, 13:17
Shamil1, эмуляция сервера нужна, просто открытием не сработает. Во этот вариант у меня работает на OpenServer:
HTML5
1
2
3
4
5
6
7
8
9
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
    <button>click</button>
</body>
</html>
<script src = "200.js"></script>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
document.addEventListener('DOMContentLoaded', docReady);
function docReady()
{
    document.getElementsByTagName('button')[0].addEventListener('click', openNewTab);
}
function openNewTab()
{
    let newTab = window.open('popup1.html');
    newTab.addEventListener('DOMContentLoaded', sendBye);
    function sendBye()
    {
        newTab.document.getElementById('demo').textContent = 'Bye!';
    }
}
1
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
06.06.2019, 16:30  [ТС]
Цитата Сообщение от atanov Посмотреть сообщение
Во этот вариант у меня работает на OpenServer:
Перенёс на IIS. Работает в Хроме, а в ИЕ11 не работает.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
06.06.2019, 16:34
Цитата Сообщение от Shamil1 Посмотреть сообщение
а в ИЕ11 не работает.
нуууу. Это в общем-то не новость ослик устарел донельзя, там столько глюков с html5, что не оберёшься. Что-так надо, что бы работало в старом осле?
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
06.06.2019, 16:45  [ТС]
Цитата Сообщение от atanov Посмотреть сообщение
Что-так надо, что бы работало в старом осле?
Надо .

Добавлено через 2 минуты
Причём, addEventListener там есть. Но к моменту выполнения этой строки документ уже загружен. Работает (для данной конкретной быстрой страницы) вариант:
JavaScript
1
2
3
4
    function myFunction0() {
        var newWin = window.open('popup1.html', 'example', 'width=600,height=400');
        newWin.document.getElementById("demo").innerHTML = "Bye!";
    }
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
06.06.2019, 16:50
Shamil1, я уже давно забил на ослика, поэтому не скажу, что конкретно не работает. Я для интереса запустил, консоль ругается на то, что нет функционала html5.
0
Модератор
Эксперт функциональных языков программирования
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
06.06.2019, 16:54  [ТС]
На реальной странице я так же сталкивался с ситуацией (ИЕ 11), что addEventListener ещё не существует (javaScript выдаёт соответствующую ошибку). Примерно, как вот здесь описано:
https://github.com/angular/zone.js/issues/535
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
06.06.2019, 17:25
Shamil1, не знаю, обычно такое можно подумать про совсем древние https://learn.javascript.ru/in... ichiya-ie8
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.06.2019, 17:25
Помогаю со студенческими работами здесь

Как выполнить действие после полной загрузки формы? События Load и Shown не подходят!
Добрый день, народ! Подскажите, пожалуйста! Как выполнить действие после ОКОНЧАТЕЛЬНОЙ И ПОЛНОЙ ЗАГРУЗКИ формы? Событие Load происходит...

Webbrowser Делать действие только после полной загрузки страницы
Здравствуйте! Мне не получается решить одну проблему. Я создаю автокликер, для этого использую WebBrowser. Все действия автокликера...

Webbrowser Делать действие только после полной загрузки страницы
Здравствуйте! Мне не получается решить одну проблему. Я создаю автокликер, для этого использую WebBrowser. Все действия автокликера...

Выполнить скрипт в новом окне+
Как средствами js можно сделать так, что бы пхп скрипт выполнялся в новом созданном окне?! Я что то совсем сбит с толку. Может кто...

Открытие страницы в новом окне на ASP
Как открыть эту страницу в новом окне ? Response.Redirect('index.asp')


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru