J’ai été confronté à ce probleme. Comment récupérer un Element faisant référence au body. L’API de GWT ne fournit pas « directement » ce service et il faut donc utiliser des méthodes détournées.
On peut par exemple rajouter un id au body dans la description HTML de la page
<html>
<head>
<meta name='gwt:module' content='fr.improve.testGWT.gwt.Application'>
</head>
<body id='bodyId'>
<script language="javascript" src="gwt.js"></script>
</body>
</html>
Dans votre application java il suffit ensuite d’utiliser le code ci-dessous
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
Element body= DOM.getElementById(« bodyId »);
Une autre solution consiste à utiliser le JSNI
Il suffit d’utiliser la méthode suivante:
public static native Element getBody() /*-{
return $doc.body;
}-*/;
L’élément est ensuite récupére par l’appel suivant :
Element body = getBody();
L’intérêt est qu’il n’y a plus besoin de modifier les pages HTML de l’application
Un peu étrange que des éléments de base comme le body ne soit pas directement accessible….
