iframe в IE становится пустым - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть страница aspx, содержащая iframe, которая показывает pdf (у меня есть обработчик ashx для отображения pdf в iframe), у меня также есть кнопка загрузки, которая в потоковом режиме представляет собой другой pdf для браузера в качестве вложения.загрузить в браузер код: (это в обработчике ashx)

    byte[] bytes =  // get byte array from table
    Response.Buffer = false;
    Response.Clear();
    Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType = "application/pdf";
    // [optional]
    Response.AddHeader(
           "Content-Disposition",
           string.Format("attachment; filename={0}", attachmentName)
     );
    Response.OutputStream.Write(bytes, 0, bytes.Length);
    Response.End();

Этот код работает нормально, однако после отправки этого ответа в браузер мой iframe становится пустым, и мне нужно обновить страницу, чтобы увидеть ее снова,Я испробовал большинство решений

  1. http://adamyoung.net/IE-Blocking-iFrame-Cookies
  2. http://forums.asp.net/p/1036628/1433536.aspx

, но ни одно из них не работает.iframe ведет себя нормально в Chrome & FF.Примечание: если я загружаю вещи, используя asp: гиперссылку на мой ashx и устанавливая target = "_ blank", это нормально работает в IE, но мне нужна некоторая обработка на стороне сервера, поэтому я не могу использовать этот метод.

1 Ответ

1 голос
/ 21 декабря 2011

Хотя Chrome и FF покидают страницу, это действительно имеет смысл.

Вы отправляете сообщение обратно на сервер, затем очищаете весь вывод, помещаете файл в поток и отправляете его.Технически, я бы сказал, что IE прав в том, чтобы убрать страницу.

Это предполагает, что ваша кнопка загрузки находится в iframe?

Решение, которое я бы попробовал, это поместить эту ссылку для загрузки в другой iFrame илиесть другая страница, которая загружает ее, и когда вы нажимаете на ссылку, она открывает новую страницу, которая просто выводит файл.Таким образом, окно вспыхивает, но затем исчезает и появляется диалоговое окно сохранения.Однако блокировщики всплывающих окон могут попытаться остановить это.

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