2011-09-27 60 views
1

即使在Chrome,FF中工作,我仍无法使Google Web Toolkit的历史记录类在Internet Explorer中工作。GWT历史记录JavaScript在Internet Explorer中不工作

我在12个月前创建了一个使用GWT 2.0的应用程序,并且发现它在某个时候停止了工作。我把它剥离回第一堂课,似乎任何时候我都会调用History.addValueChangeHandler,Internet Explorer崩溃。

下面是代码:

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);  
     }  

} 

很难相信这可能崩溃,但这里是错误:

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) 

任何帮助,将不胜感激。谢谢!

回答

0

这是IE7吗?您是否使用JSP/Servlet来呈现您的主页?如果是,请确保您的servlet使用双引号生成历史记录iframe /脚本代码,而不是单引号。

+0

7和8没有工作,也没有兼容模式。 9也不工作。 今天我将要尝试GWT 2.4,看看这是否会改变任何事情。它可能只是我的项目,我以为我试过创建一个新的,但因为所有的eclipse设置和它引用的库,我认为我做错了。 我没有使用servlet页面是带双引号的HTML。我只用我自己的CSS来使用股票标准页面。 – Spacey

+0

确定与GWT2.4和新eclpise它在IE8中工作,但不是在兼容模式下。不知道为什么。 – Spacey

相关问题