IE window.open во второй сессии открывает окно с идентификатором первой сессии

У меня есть приложение asp.net, и мне нужно запустить две сессии одновременно.

Я также использую windows.open на некоторых из моих страниц, и именно здесь начинается моя проблема. Если у меня есть две сессии, когда я звоню windows.open в JavaScript с одной из моих страниц во второй сессии открывается новое окно с идентификатором сессии из первой сессии.

Я также должен добавить, что второй сеанс создается в другом экземпляре IE с использованием приведенного ниже кода.

var myshell = new ActiveXObject("Shell.Application");

if (parseFloat(ieVersion) >= 8) {
    myshell.ShellExecute("iexplore.exe", "-noframemerging " + url, "", "open", 1);
}
else {
    myshell.ShellExecute("iexplore.exe", url, "", "open", 1);
}

1 ответ

Решение

Я знаю, почему это так, но я нашел проблему...

Новое окно, открытое из второго экземпляра IE, загружалось неправильно и выполняло рендеринг обратно в первом экземпляре IE.

Javascript для открытия окна просто: window.open(the_url, "DisplayWindow", опция);

Это работает на первом экземпляре IE просто отлично, а на некоторых компьютерах под управлением Windows 7 и IE 9 это работает, открывая окно на втором экземпляре IE, но для других компьютеров, на которых запущена такая же настройка, это просто не работает!

Решение состоит в том, чтобы просто удалить имя окна.
window.open (the_url, "", опция);

Я также нашел похожую проблему, когда в IE9 окно не открывается, если имя окна содержит пробел! Поэтому попробуйте изменить имя окна или удалить его, если у вас есть похожая проблема.

Другие вопросы по тегам