window.open () не открывается при нажатии более одного раза - PullRequest
4 голосов
/ 04 января 2012

В моем приложении JSP у меня есть функция javascript, которая открывает новое окно.ReportURL - это вызов приложения asp, которое создает PDF-файл.Итак, если вы вызовете эту страницу asp, она выдаст pdf-данные.

У меня есть javascript:

function openReport(id)
{
    window.open('<%=reportUrl%>&id='+id,
                '_blank',
                'width=900 height=900 scrollbars=yes status=yes'
               );
}

Теперь мое приложение работает нормально, когда нажата ссылка на отчет,это открывает новое окно, и я могу просмотреть свой PDF.Однако, когда я закрываю окно отчета в формате PDF и снова щелкаю ссылку, чтобы сгенерировать отчет, открывается новое окно (без PDF).Это новое окно не выглядит как пустое окно, так как фон не белый, скорее, похоже, что плагин pdf для браузера распознает, что это pdf, поскольку я вижу серый фон, но не могу просмотреть документ.

Может кто-нибудь, пожалуйста, дайте мне знать, в чем проблема?

1 Ответ

2 голосов
/ 08 января 2012

По-моему, это проблема кеширования. Будь то кеширование самого окна или результатов URL, я не могу сказать, не исследовав его. Я бы попробовал две вещи, назвав окно случайным именем, которое меняется каждый раз, когда вы щелкаете по нему, поэтому вместо '_blank' используйте (new Date()).toString() (или подобное, я его не проверял). Второе, что нужно попробовать, это убедиться, что URL каждый раз уникален, чтобы избежать кеширования, поэтому выберите переменную строки запроса, которая не используется системой отчетов, и изменяйте ее каждый раз, когда ее нажимают, например, + 'version='+(new Date()).toString().

Этот код всплывающего окна jquery работает, если вы дважды щелкнете по нему, поэтому полезно определить, что работает, а что нет http://swip.codylindley.com/popupWindowDemo.html

На самом деле вы можете провести свой собственный тест, изменить URL-адрес во всплывающем окне на обычный веб-сайт и посмотреть, как он работает, если он работает нормально, вы знаете, что его содержимое, а не окно.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...