У меня есть много всплывающих окон window.open, используемых для поиска элемента, которые вызывают функцию javascript из window.opener для выбора этого элемента (когда пользователь нажимает на него).
Это всегда работало во всех браузерах, но не в Edge. Я узнал, что window.opener является «неопределенным» только в Edge. Неважно, пробую ли я это локально или на своем веб-сервере, у меня та же проблема. И это не может быть междоменная вещь безопасности, мои всплывающие окна - это страницы с одного и того же веб-сайта.
Есть ли что-то, что я пропустил в Edge? Новое требование к тому, как мы используем window.open?
Например, если у меня есть кнопка ввода, которая делает:
window.open('search.aspx','searching');
и функция javascript в головной части, например:
function SelectItem(ID)
{
// insert magic here
alert('test');
}
Следующий код javascript из search.aspx не работает в Edge:
window.opener.SelectItem(123);
И если бы я изменил его на
alert(window.opener);
Я увижу, что это не определено.
Редактировать 1: Нет, это не дубликат Window.opener в Microsoft Edge undefined при работе на локальном хосте. Я уже прочитал этот вопрос, прежде чем задать свой. Моя проблема возникает не только с локального хоста, но и с веб-сервера. Это не проблема имени хоста.
Редактировать 2: Простой способ проверить это, я столкнулся с той же проблемой из примера w3schools "Попробуйте сами": https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_open3
Обновление (решение): у меня была эта проблема с Edge 38.14393 (Windows 10 версии 1607). Я только что обновился до Win10 версии 1803 (Edge 42.17134), и теперь он работает нормально, как и ожидалось. Возможно, это была ошибка в предыдущей версии Edge!