GWT IFrame Javascript ошибка - PullRequest
       0

GWT IFrame Javascript ошибка

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

У меня есть модуль gwt, который я пытаюсь загрузить на свою страницу хоста.Это довольно стандартная процедура:

public class TimeFvHelper implements EntryPoint {

/**
 * This is the entry point method.
 */
public void onModuleLoad() {        
    ChargeToTreePresenter presenter = new ChargeToTreePresenterImpl(new ChargeToTree());        
    RootPanel.get("divPicker").add((Widget)presenter.getView());        

}

Обычно она работает без проблем.Однако, когда я открываю веб-страницу с помощью IE9, в первый раз у меня нет проблем.Однако, если я перезагружаю страницу или возвращаюсь, то возвращаюсь, я получаю следующую ошибку:

Unable to get value of the property 'location': object is null or undefined

Это в файле nocache.js, сгенерированном во время компиляции, особенно в MaybeInjectFrame() метод:

  var frameInjected;
  function maybeInjectFrame(){
    if (!frameInjected) {
      frameInjected = true;
      var iframe = $doc.createElement($intern_36);
      iframe.src = $intern_37;
      iframe.id = $intern_1;
      iframe.style.cssText = $intern_38;
      iframe.tabIndex = -1;
      $doc.body.appendChild(iframe);
      $stats && $stats({moduleName:$intern_1, sessionId:$sessionId, subSystem:$intern_2, evtGroup:$intern_8, millis:(new Date).getTime(), type:$intern_39});
      iframe.contentWindow.location.replace(base + initialHtml);    // <-- Here
    }
  }

За последние два дня я видел много постов, в которых говорится, что IE9 имеет проблемы с iframes.Это то, что здесь происходит?Любые идеи обойти?

-Ian

Ответы [ 2 ]

0 голосов
/ 10 февраля 2012

Я вижу ту же проблему, и у меня нет решения.

Но вот код, содержащий значения интернированных строк.

function maybeInjectFrame(){
if (!frameInjected) {
  frameInjected = true;
  var iframe = $doc.createElement('iframe');
  iframe.src = "javascript:''";
  iframe.id = 'application';
  iframe.style.cssText = 'position:absolute;width:0;height:0;border:none';
  iframe.tabIndex = -1;
  $doc.body.appendChild(iframe);
  $stats && $stats({moduleName:'application', sessionId:$sessionId, subSystem:'startup', evtGroup:'moduleStartup', millis:(new Date).getTime(), type:'moduleRequested'});
  iframe.contentWindow.location.replace(base + initialHtml);
}

}

0 голосов
/ 07 декабря 2011

Попробуйте использовать компоновщик xsiframe вместо используемого по умолчанию std one.

Он по-прежнему использует iframe для песочницы (так что загруженные на странице скрипты не влияют на код GWT), но не изменяют местоположение iframe (вместо этого он записывает в iframe); и он имеет много других функций: http://code.google.com/p/google-web-toolkit/issues/list?can=1&q=xsiframe+status%3AFixed

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