Hello,
We are using Vaadin 7.3.7 and we include JQuery lib by adding a BootstrapListener to VaadinSession:
[code]
public class MyServlet extends VaadinServlet
{
private static final String THEME_PATH = “VAADIN/themes/mytheme/”;
private static final String JS_PLUGINS_PATH = “js/plugins/”;
@Override
protected void servletInitialized() throws ServletException
{
super.servletInitialized();
getService().addSessionInitListener(new SessionInitListener() {
@Override
public void sessionInit(SessionInitEvent event)
{
event.getSession().addBootstrapListener(new BootstrapListener() {
@Override
public void modifyBootstrapFragment(BootstrapFragmentResponse response)
{
//
}
@Override
public void modifyBootstrapPage(BootstrapPageResponse response)
{
injectJavascript(response, THEME_PATH + JS_PLUGINS_PATH + "jquery/jquery-1.6.1.js");
}
});
}
});
}
private static void injectJavascript(BootstrapPageResponse response, String javascriptUrl)
{
response.getDocument()
.head()
.prependElement("script")
.attr("type", "text/javascript")
.attr("src", javascriptUrl);
log.debug("Script injected: " + javascriptUrl);
}
…
[/code]This approach works fine on modern browsers (IE10, Chrome, Firefox, Safari, Opera etc…) but on IE8, Vaadin spinner keeps spinning forever on first request (with no JS call on JQuery).
E8 Console and Vaadin Debugger displays the following error before spinner appears:
Mon Dec 22 20:38:06 GMT+200 2014 com.vaadin.client.ApplicationConfiguration
SEVERE: (TypeError) : Object doesn't support this property or methodcom.google.gwt.core.client.JavaScriptException: (TypeError) : Object doesn't support this property or method
Removing
injectJavascript(response, THEME_PATH + JS_PLUGINS_PATH + "jquery/jquery-1.6.1.js");
line fixes the issue, but our code base is dependent on JQuery.
Any help is very much appreciated.