Java GWT 2.4 IE8问题

Java GWT 2.4 IE8问题,java,gwt,Java,Gwt,我正在使用GWT2.4(无法将我的版本升级到2.5) 我有以下问题:当我使用Chrome、Firefox或InternetExplorer9o10时,我的系统运行得相当好;使用InternetExplorer8,我的系统根本不工作;它向用户显示一个空白页面,我得到以下javascript错误: 帕吉纳网 代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0) 时间戳:2013年9月5日星期四10:56:58 UTC 消息:Argomento无

我正在使用GWT2.4(无法将我的版本升级到2.5) 我有以下问题:当我使用Chrome、Firefox或InternetExplorer9o10时,我的系统运行得相当好;使用InternetExplorer8,我的系统根本不工作;它向用户显示一个空白页面,我得到以下javascript错误:

帕吉纳网

代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0) 时间戳:2013年9月5日星期四10:56:58 UTC

消息:Argomento无效。 Linea:28410 克拉特:54 密码:0 URI:

我在网上搜索时发现了以下链接: 本期GWT解释了GWT2.4在IE8和chromeframe方面存在一些问题;我照他们的建议做了;事实上,我所做的是:

  • 在我的应用程序HTML页面中,我添加了以下meta标记:metahttp equiv=“X-UA-Compatible”content=“IE=edge,chrome=1”
  • 我创建了我的自定义属性ProviderGenerator(请参见下面的代码)
  • 在my.gwt.xml文件中,我指定使用自定义PropertyProviderGenerator(请参见下面的代码)
属性ProviderGenerator

import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.core.ext.linker.ConfigurationProperty;
import com.google.gwt.core.ext.linker.PropertyProviderGenerator;

import java.util.Arrays;
import java.util.List;
import java.util.SortedSet;

public class CustomUserAgentPropertyGenerator implements PropertyProviderGenerator {

    private static final List<String> VALID_VALUES = Arrays.asList(new String[]{"ie6", "ie8", "gecko1_8", "safari", "opera", "ie9"});

    private static UserAgentPropertyGeneratorPredicate[] predicates =
            new UserAgentPropertyGeneratorPredicate[] {

        // opera
        new UserAgentPropertyGeneratorPredicate("opera")
        .getPredicateBlock()
        .println("return (ua.indexOf('opera') != -1);")
        .returns("'opera'"),

    // webkit family (chrome, safari and chromeframe).
    new UserAgentPropertyGeneratorPredicate("safari")
    .getPredicateBlock()
        .println("return (ua.indexOf('webkit') != -1);")
        .returns("'safari'"),

        // IE9
        new UserAgentPropertyGeneratorPredicate("ie9")
        .getPredicateBlock()
        .println("return (ua.indexOf('msie') != -1 && ($doc.documentMode >= 9));")
        .returns("'ie9'"),

        // IE8
        new UserAgentPropertyGeneratorPredicate("ie8")
        .getPredicateBlock()
        .println("return (ua.indexOf('msie') != -1 && ($doc.documentMode >= 8));")
        .returns("'ie8'"),

        // IE6
        new UserAgentPropertyGeneratorPredicate("ie6")
        .getPredicateBlock()
        .println("var result = /msie ([0-9]+)\\.([0-9]+)/.exec(ua);")
        .println("if (result && result.length == 3)")
        .indent()
        .println("return (makeVersion(result) >= 6000);")
        .outdent()
        .returns("'ie6'"),

        // gecko family
        new UserAgentPropertyGeneratorPredicate("gecko1_8")
        .getPredicateBlock()
        .println("return (ua.indexOf('gecko') != -1);")
        .returns("'gecko1_8'"),
    };

    static void writeUserAgentPropertyJavaScript(SourceWriter body, SortedSet<String> possibleValues) {

        // write preamble
        body.println("var ua = navigator.userAgent.toLowerCase();");
        body.println("var makeVersion = function(result) {");
        body.indent();
        body.println("return (parseInt(result[1]) * 1000) + parseInt(result[2]);");
        body.outdent();
        body.println("};");

        // write only selected user agents 
        for (int i = 0; i < predicates.length; i++) {
            if (possibleValues.contains(predicates[i].getUserAgent())) {
                body.println("if ((function() { ");
                body.indent();
                body.print(predicates[i].toString());
                body.outdent();
                body.println("})()) return " + predicates[i].getReturnValue() + ";");
            }
        }

    // default return
    body.println("return 'unknown';");
}

    public String generate(TreeLogger logger, SortedSet<String> possibleValues, String fallback, SortedSet<ConfigurationProperty> configProperties) {
        for (String value : possibleValues) {
            if (!VALID_VALUES.contains(value)) {
                logger.log(TreeLogger.WARN, "Unrecognized "
                        + UserAgentGenerator.PROPERTY_USER_AGENT + " property value '"
                        + value + "', possibly due to UserAgent.gwt.xml and "
                        + UserAgentPropertyGenerator.class.getName()
                        + " being out of sync." + " Use <set-configuration-property name=\""
                        + UserAgentGenerator.PROPERTY_USER_AGENT_RUNTIME_WARNING
                        + "\" value=\"false\"/> to suppress this warning message.");
            }
        }
        assert predicates.length == VALID_VALUES.size();
        StringSourceWriter body = new StringSourceWriter();
        body.println("{");
        body.indent();
        writeUserAgentPropertyJavaScript(body, possibleValues);
        body.outdent();
        body.println("}");
        return body.toString();
    }
}
import com.google.gwt.core.ext.TreeLogger;
导入com.google.gwt.core.ext.linker.ConfigurationProperty;
导入com.google.gwt.core.ext.linker.PropertyProviderGenerator;
导入java.util.array;
导入java.util.List;
导入java.util.SortedSet;
公共类CustomUserAgentPropertyGenerator实现PropertyProviderGenerator{
私有静态最终列表有效值=Arrays.asList(新字符串[]{“ie6”、“ie8”、“gecko1_8”、“safari”、“opera”、“ie9”});
私有静态UserAgentPropertyGeneratorPredicate[]谓词=
新的UserAgentPropertyGeneratorPredicate[]{
//歌剧院
新用户代理属性生成器预测(“opera”)
.getPredicateBlock()文件
.println(“return(ua.indexOf('opera')!=-1;”)
.returns(“opera”),
//webkit系列(chrome、safari和chromeframe)。
新的UserAgentPropertyGeneratorPredicate(“safari”)
.getPredicateBlock()文件
.println(“return(ua.indexOf('webkit')!=-1;”)
.returns(“'safari'”),
//IE9
新用户代理属性生成器预测(“ie9”)
.getPredicateBlock()文件
.println(“return(ua.indexOf('msie')!=-1&($doc.documentMode>=9));)
.返回(“ie9”),
//IE8
新用户代理属性生成器预测(“ie8”)
.getPredicateBlock()文件
.println(“return(ua.indexOf('msie')!=-1&($doc.documentMode>=8));)
.返回(“ie8”),
//IE6
新用户代理属性生成器预测(“ie6”)
.getPredicateBlock()文件
.println(“var result=/msie([0-9]+)\\.([0-9]+)/.exec(ua);”)
.println(“if(result&&result.length==3)”)
.indent()
.println(“返回(makeVersion(result)>=6000);”)
.outdent()
.返回(“ie6”),
//壁虎科
新用户代理属性生成器预测(“gecko1_8”)
.getPredicateBlock()文件
.println(“return(ua.indexOf('gecko')!=-1;”)
.returns(“'gecko1_8'”),
};
静态无效writeUserAgentPropertyJavaScript(SourceWriter主体,SortedSet可能值){
//写序言
println(“var ua=navigator.userAgent.toLowerCase();”;
println(“var makeVersion=函数(结果){”);
body.indent();
println(“return(parseInt(result[1])*1000)+parseInt(result[2]);”;
body.outdent();
body.println(“};”);
//只写选定的用户代理
for(int i=0;i
MySystem.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='mysystem'>
<!-- some inherits -->
<property-provider name="user.agent" generator="com.google.gwt.user.rebind.mysystemUserAgentPropertyGenerator"/>
<inherits name="com.google.gwt.user.UserAgent"/>
<set-configuration-property name="user.agent.runtimeWarning" value="false"/>  
<!-- the rest of the file -->
<extend-property name="locale" values="en, it" />
</module>

遗憾的是,这样做并没有解决问题 有人能给我提些别的建议吗

多谢各位


Angelo

按照GWT模块的加载方式,以后定义的任何内容都会覆盖以前定义的内容,
被处理,就好像继承的模块包含在适当的位置一样


因此,您应该将
移动到
行之后。

您是否尝试清除浏览器和IDE中的所有缓存?在intellij中,我经常必须停止intellij idea,清除缓存/gwt dieclipse,并再次启动intellij以消除此类虚假问题。eclipse也一样。

嗨,托马斯,首先感谢您的回复。可悲的是,我尝试了你的建议,但我总是会犯同样的错误……我快疯了……这是从我战斗的4天开始的:(你好,罗伯特;谢谢你的回答;我不使用任何IDE;