Le paquetage com.sun.java.browser.dom propose des interfaces et des classes pour l'exécution d'opérations DOM au sein de threads

Interface Description
DOMAccessor Les objets implémentant cette interface doivent retourner un noeud DOM Document (Document getDocument(Object obj)) et une implémentation DOM DOMImplementation (DOMImplementation getDOMImplementation()).
DOMAction comporte une méthode Object run(DOMAccessor accessor) qui est destinée à être appelée par un thread DOM. Un objet implémentant cette interface doit être passée à l'une des méthodes invokeAndWait() ou invokeLater() de la classe DOMService.
Classe Description
DOMService fournit des méthodes capables d'exécuter de façon synchrone ou asynchrone des objets DOMAction.
DOMServiceProvider représente un fournisseur de services qui sera utilisé par les méthodes appropriées d'un objet DOMService.
Exception Description
DOMAccessException est lancée lorsqu'une erreur se produit dans un thread DOM initiée par les méthodes invokeAndWait() et invokeLater() de la classe DOMService.
DOMUnsupportedException est lancée si un objet non-supportée est utilisé avec les méthode DOMServiceProvider.getDocument() et DOMService.getService().
import netscape.javascript.*;
import java.applet.*;
import java.awt.*;
public class UnApplet extends Applet {
  public void init() {
    JSObject win = JSObject.getWindow(this);
    JSObject doc = (JSObject) win.getMember("document");
    JSObject loc = (JSObject) doc.getMember("location");

    String s = (String) loc.getMember("href");
    win.call("uneFonction", new String[]{"Un message personnel..."});
  }
  public String getTitle(){
    DOMService service = null;
    String title = null;
    try{
      service = DOMService.getService(this);

      title = (String) service.invokeAndWait(new DOMAction(){
        public Object run(DOMAccessor accessor){
          HTMLDocument doc = (HTMLDocument) accessor.getDocument(this);
          return doc.getTitle();
        }
      });
    }
    catch (DOMUnsupportedException e){
      e.printStackTrace();
    }
    catch (DOMAccessException e){
      e.printStackTrace();
    }
    return title;
  }
}

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- Date de création: 25/08/2005 -->
  <head>
  <title>Une page Web</title>
  <script language="Javascript" type="text/javascript">
    unFonction(msg){
      alert(msg);
    }
  </script>
  </head>
  <body>
     <object 
        classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
        width="200" height="200" align="baseline">
       <param name="code" value="UnApplet.class">
       <param name="codebase" value="html/">
       <param name="type" 
                 value="application/x-java-applet;jpi-version=1.5.0">
       <param name="MAYSCRIPT" value="true">
         Les applets ne sont pas supportés !
     </object>
  </body>
</html>
Sommaire