2011-09-27 4 views
1

Je n'arrive pas à faire fonctionner la classe History de Google Web Toolkit dans Internet Explorer, même si elle fonctionne dans Chrome, FF.Historique GWT JavaScript ne fonctionne pas dans Internet Explorer

J'ai créé une application en utilisant GWT 2.0 il y a environ 12 mois, et j'ai remarqué qu'elle cessait de fonctionner un jour. Je l'ai réduit à la toute première classe et il semble que chaque fois que j'appelle History.addValueChangeHandler, Internet Explorer se bloque.

Voici le code:

package com.js.client; 

import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.user.client.ui.RootPanel; 

import com.google.gwt.user.client.ui.Label; 
import com.google.gwt.event.logical.shared.ValueChangeEvent; 
import com.google.gwt.event.logical.shared.ValueChangeHandler; 
import com.google.gwt.user.client.History; 

/** 
* Entry point classes define <code>onModuleLoad()</code>. 
*/ 
public class Test implements EntryPoint, ValueChangeHandler<String> 
{ 

    /** 
    * This is the entry point method. 
    */ 
    public void onModuleLoad() {   
     History.addValueChangeHandler(this); 
     History.fireCurrentHistoryState(); 
    } 

    public void onValueChange(ValueChangeEvent<String> event) { 
     Label loading = new Label("Loading..."); 
     RootPanel.get().add(loading);  
     }  

} 

Il est difficile de croire que cela pourrait tomber en panne, mais voici l'erreur:

18:50:52.407 [ERROR] [test] Unable to load module entry point class com.js.client.Test (see associated exception for details) 
com.google.gwt.core.client.JavaScriptException: (Error): Access is denied. 
description: Access is denied. 
number: -2147024891 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:195) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:264) 
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) 
    at com.google.gwt.user.client.impl.HistoryImplIE6.getTokenElement(HistoryImplIE6.java) 
    at com.google.gwt.user.client.impl.HistoryImplIE6.init(HistoryImplIE6.java:80) 
    at com.google.gwt.user.client.History.<clinit>(History.java:63) 
    at com.js.client.Test.onModuleLoad(Test.java:24) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:369) 
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:185) 
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:380) 
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222) 
    at java.lang.Thread.run(Unknown Source) 

Toute aide serait appréciée. Merci!

Répondre

0

Est-ce IE7? Utilisez-vous une JSP/Servlet pour afficher votre page d'accueil? Si oui, assurez-vous que votre servlet génère le code iframe/script de l'historique avec des guillemets doubles et non des guillemets simples.

+0

7 et 8 ne fonctionnaient pas, pas plus que les modes de compatibilité. 9 ne fonctionne pas non plus. Aujourd'hui, je vais essayer GWT 2.4 pour voir si ça change quelque chose. Ça pourrait être mon projet, je pensais avoir essayé d'en créer un nouveau mais à cause de tous les paramètres d'éclipse et des bibliothèques auxquelles il faisait référence, je pense que je me suis trompé. Je n'utilise pas de servlets, la page est HTML avec des guillemets doubles. Je viens d'utiliser la page de stock standard avec mon propre CSS. – Spacey

+0

OK avec GWT2.4 et nouvelle eclpise cela fonctionne dans IE8, mais pas en mode de compatibilité. Aucune idée pourquoi, cependant. – Spacey

Questions connexes