2013-07-12 8 views
2

Это странная проблема, которая, вероятно, в основном связана с Internet Explorer и Adobe PDF reader. В других браузерах и читателях PDF я не получаю эту проблему. Например. с Chrome и встроенным PDF-ридером, я не понимаю эту проблему.Приложение GWT/GXT со всплывающим окном и iFrame под Internet Explorer с Adobe Reader, PDF не скрывает

Я открываю документ PDF в объекте «Frame», и когда я закрываю рамку, PDF не исчезает. По сути, PDF-файл все еще существует, пока я не закрою браузер.

Кто-нибудь заметил? Есть ли какие-либо уловки для обеспечения правильного закрытия PDF-файла?

Вот скриншот, обратите внимание, как PDF по-прежнему плавает.

Используйте приведенный ниже код, можно ли легко преобразовать эту логику в тег HTML 'object'?

Здесь большая часть кода, по существу вызвать всплывающее окно, в кадре:

import com.google.gwt.user.client.ui.Frame; 

     final Frame centerDocumentFrame = new Frame(); 
     final SafeUri uri = new SafeUri() { 
        @Override 
        public String asString() { 
         return "/path/PATH_TO_PDF"; 
        } 
     }; 
     centerDocumentFrame.setUrl(uri); 

     final Window gridPopup = new Window(); 
     gridPopup.setWidget(centerDocumentFrame); 
     gridPopup.setMaximizable(true); 
     gridPopup.setClosable(true); 
     gridPopup.setResizable(true); 

<iframe class="gwt-Frame GL2YXWTBNL GL2YXWTBLFC" 
src="PDF" style="left: 360px; top: 0px; width: 431px; height: 358px;"/> 

На близко, PDF документ сидит там.

Примечание: это, вероятно, проблема с Internet Explorer и Adobe Reader. По-видимому, с этим типом динамического iFrame и заполнением его PDF-файлом, а затем закрытием, Adobe не выпускает этот экран правильно. Есть ли какая-то работа? Мы также пытались избежать использования объекта тега в пользу фрейма

Окружающая среда:

Gxt Версия: 3.0.1
GWT: 2.5.1
Windows 7
Internet Explorer 9 (без причуд режим)
Tomcat 7
Adobe Reader версия 10.10

Подробнее здесь:

http://www.sencha.com/forum/showthread.php?267784-Issue-with-popup-Window-on-Internet-Explorer-and-iFrame-and-Adobe-Reader-PDF-document

Похожие:

http://social.msdn.microsoft.com/Forums/ie/en-US/8ff26bbd-9471-4137-ac6a-ff34ee02ab74/iframepdf-not-hiding-in-ie10

ответ

3

Не могли бы вы попробовать следующее: (Я расширяю рамку, чтобы удалить ее из DOM на Event.ONLOAD). Я использую его, чтобы имитировать «файл загрузки», например. Это может быть обходным путем для этой ошибки IE9.

public class HiddenFrame extends Frame { 

    public HiddenFrame(String url) { 
     super(); 
     //setSize("0px", "0px"); 
     //setVisible(false); 
     sinkEvents(Event.ONLOAD); 
     RootPanel.get().add(this); 
     setUrl(url); 
    } 

    public void onBrowserEvent(Event event) { 
     if (DOM.eventGetType(event) == Event.ONLOAD) { 
      unsinkEvents(Event.ONLOAD); 
      DOM.eventCancelBubble(event, true); 
      RootPanel.get().remove(this); 
     } else { 
      super.onBrowserEvent(event); 
     } 
    } 

} 
1

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

RootLayoutPanel.get().clear(); 
RootLayoutPanel.get().add(new MyPanel()); 
RootLayoutPanel.get().forceLayout(); 

Если у вас есть панель, которая, в позиции и размера, обертку PDF целиком, вы можете попробовать установить, что невидимы, а затем видно. Я не уверен, если это поможет, однако

EDIT

Изменения размеров компоненты, который содержит плавающий фрейм может работать тоже, это не для меня.