В нашем (довольно большом и старом) приложении ASP.NET мы используем много страниц, загружаемых в фреймы, iframe и модальные диалоги (используя window.showModalDialog). Мы начинаем видеть ошибку выше совсем немного, и я не могу найти ни единого рационального объяснения для нее где-нибудь.
-
Блокировщики всплывающих окон. Неа. Мы не запускаем их. Даже встроенный блокатор.
-
Доверенная зона. Неа. Приложение работает на LocalHost прямо сейчас, и оно находится в списке доверенных сайтов.
-
Бродячие космические лучи. Возможно, но не вероятно. Это слишком непротиворечиво.
В конце концов я нашел сообщение об ошибке, заложенное на веб-сайте Microsoft в несколько пыльных томов о получении информации об ошибках автоматизации автоматизации. В нем говорилось о Excel, и они сказали: "В этом примере Microsoft Excel является серверным приложением. Ссылка на объект рабочей книги после его уничтожения (или закрытия) создает ошибку."
Это, вероятно, так близко, что я когда-либо объяснял причину ошибки, без реального, конкретного объяснения. Кто-то пытался что-то использовать после того, как их ссылка на него была удалена. Как ни странно, вы все равно можете видеть окна на экране. Любопытно, однако, что это подозрительно относится ко мне с принятым ответом на this.
Итак, вот что происходит.
- Страница A - главная страница.
- PageA отображает PageB в кадре. PageB - это панель инструментов.
- PageA отображает страницу C в другом кадре. Это содержимое.
- PageC отображает PageDD в немодальном диалоге.
- PageDD, по неизвестным мне причинам, хочет изменить элементы управления в PageB. Он пытается использовать window.opener для этого и терпеть неудачу.
Если бы кто-нибудь мог рассказать мне, почему это так (код работает в FF), я был бы признателен.