Я использую GWT 2.4 (и я не могу обновить свою версию до версии 2.5) У меня возникает следующая проблема: когда я использую Chrome, Firefox или Internet Explorer 9 o 10, моя система работает довольно хорошо; используя Internet Explorer 8, мои системы вообще не работают; он показывает пустую страницу для пользователя и я получаю следующий яваскрипт ошибки:GWT 2.4 Проблемы IE8
Dettagli errore pagina Web
Agente utente: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) Timestamp: Thu, 5 Sep 2013 10:56:58 UTC
Messaggio: Argomento non valido. Linea: 28410 Carattere: 54 Codice: 0 URI: http://app.it:8080/myApp/F662F41B287D1686DCB056062754DFEB.cache.html
Я искал в сети, и я нашел эту ссылку: https://code.google.com/p/google-web-toolkit/issues/detail?id=6665 В этом вопросе GWT это объясняется тем, что GWT 2,4 имеет некоторые проблемы с IE8 и хромированной рамкой; Я сделал то, что они предложили; на самом деле, что я сделал это:
- в моем приложение HTML страницы, я добавил следующие мета-тег: мета HTTP-эквив = "X-UA-Compatible" содержание = "IE = край, хром = 1 "
- Я создал свой обычай PropertyProviderGenerator (см код ниже)
- в моем файле .gwt.xml я указал, чтобы использовать свой собственный PropertyProviderGenerator (см код ниже)
PropertyProviderGenerator
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();
}
}
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
Hi Thomas Прежде всего спасибо, что ответили. К сожалению, я попробовал то, что вы предложили, но я всегда получаю ту же ошибку ... Я схожу с ума ... это с 4 дней, когда я сражаюсь :( –