Pour autant que j'ai pu le dire, personne n'a posé cette question sur un forum (StackOverflow ou ailleurs).Comment fermer une fenêtre à partir de PeopleCode?
Mon problème
Voici ce que je dois faire. Au bureau d'embauche, ils ont un ordinateur qui est utilisé uniquement pour prendre des I9 des gens. Cela arrive très souvent. À la toute fin, nous voulons être en mesure de fermer la fenêtre de navigation, car alors le cache, les cookies (et les informations de connexion) sont supprimés du kiosque I9.
Existe-t-il un moyen de fermer la fenêtre de navigateur actuelle à l'intérieur de PeopleCode?
Ce que j'ai essayé
Je sais que la fermeture d'une fenêtre est trivial en JavaScript. Vous mettez simplement window.close()
et la fenêtre du navigateur se ferme. Si je pouvais le faire dans PeopleCode, mon problème serait résolu. Je n'ai trouvé aucun moyen de le faire.
Actuellement, lors de la soumission du formulaire, le code suivant est appelé.
%Response.RedirectURL(GenerateScriptContentURL(%Portal, %Node, Record.WEBLIB_G_I9, Field.ISCRIPT1, "FieldFormula", "IScript_I9_CLOSE_KIOSK"));
Dans ce fieldformula, le code suivant se produit:
%Response.Write(GetHTMLText(HTML.G_CLOSE_FORM_KIOSK));
Voici le contenu du HTML référencé.
You have successfully completed Section 1 of the Form I-9. Now present your documentation to the employment representative to complete Section 2
<script language="javascript">
window.close();
</script>
Le window.close();
n'est pas appelé, et la page affiche seulement le texte brut. Y a-t-il quelque chose que je fais de mal?
J'ai essayé de router vers une page avec seulement une zone HTML, et d'intégrer du JavaScript dans ce HTML, mais cela ne semble pas fonctionner. J'ai placé cette page dans le même composant que le formulaire I9, et j'ai essayé d'appeler TransferPage(Page.Y_CLOSE_WINDOW);
Mais cela semble n'avoir aucun effet. C'est à cause de la façon dont les pages sont chargées. Mon idée suivante était de créer un JavaObject dans PeopleCode qui appelle JavaScript (en utilisant soit Rhino, Nashorn, ou javax.script.ScriptEngine), mais c'est plutôt compliqué, et ça m'inciterait à introduire beaucoup de code supplémentaire et jars juste pour lancer une simple commande JavaScript. Je préférerais vraiment ne pas le faire.
Tous les navigateurs sur les ordinateurs Kiosk sont mis à vider le cache et les cookies quand ils sont fermés. Donc, tout en se déconnectant en plus de la fermeture serait super, je ne pensais pas que c'était possible. –
Pour autant que je sache, il n'est pas possible de fermer la fenêtre principale du navigateur par javascript, ni d'effacer le cache et les cookies automatiquement.Pourquoi est-il nécessaire d'effacer le cache et les cookies? Pour des raisons de sécurité? –
Je sais que vous ne pouvez pas effacer le cache et les cookies via JavaScript, mais il est possible à travers tous les navigateurs que nous utilisons (surtout Chrome/Firefox) lorsque le navigateur est fermé. Je vais chercher des informations supplémentaires. En passant, je suis capable de faire déconnecter l'ordinateur en appelant '% Response.Redirect (% Request.LogoutURL));' –