Défi : Remettre à la côte l'applet du code de Java. Par exemple dites que le code d'applet calcule que l'applet a besoin de plus d'espace qu'il a été assigné, puis comment aller environ il ?

Le moment passé où confronté à ce problème je l'ai résolu avec un morceau astucieux de méthode de Javascript. Cependant j'ai bientôt réalisé qu'il y avait peu d'issues avec l'approche.

D'abord nous avons fait la personne à charge d'applet sur le morceau externe de méthode de Javascript qui crée la dépendance indésirable.

Le problème principal était quand nous avons voulu inclure le multiple de tels applet dans la même page. Évidemment maintenant je ne peux pas employer la même chose remets à la côte la méthode, qui est hardcoded pour appeler l'applet de nom. Également j'ai constaté que logique de document [la « appletname »] échoue quand l'applet est dans une table. Alors nous devons nous référer à l'applet utilisant la hiérarchie que nous ne commandons pas. Nous ne pouvons pas également avoir deux applet avec le même nom qu'alors seulement le premier exécute.
Ainsi il était évident nous a dû passer le nom de l'applet à cette méthode. Mais comment obtenir le nom ?
J'intuited correctement cela puisqu'applet.getParameter employés pour obtenir des paramètres de l'applet étiquettent, il est possible que nous puissions chercher le nom de l'applet suivre la même méthode. Ce s'est avéré être le cas. Tellement maintenant j'ai eu cette version où j'ai passé le nom de l'applet à la méthode de remettre à la côte et elle a appelé l'applet par son nom (applet [« nom »]) et réglé la taille comme fourni par les paramètres. Ceci a fonctionné très bien avec les les deux les navigateurs (Internet Explorer et Netscape). Cependant je n'ai toujours pas été satisfait. La dépendance externe me branchait sur table d'écoute. La prochaine étape était d'essayer d'exécuter le code de Javascript dans Java lui-même, utilisant le même pont de LiveConnect. Ma première tentative de placer la taille utilisant JSObject.getMethod a échoué dans l'IE. Apparemment Internet Explorer ne soutient pas la méthode ! Alors j'ai simplement évalué le code entier utilisant eval. Ceci a fonctionné bien pour les les deux les navigateurs. Je pourrais me débarasser de la méthode embêtante de Javascript - remettez à la côte. Maintenant finalement j'étais heureux. Comme j'ai bientôt réalisé que cependant il restait snag. Les difficultés ne fonctionnent pas en navigateur d'opéra. Mais je ne suis pas trop inquiété examinant la part de marché de ce navigateur.

Pour récapituler la ligne du code principale : jso.eval (applet + « largeur = » + largeur + « ; ") ;