【发布时间】:2016-03-29 18:25:42
【问题描述】:
据我所知,没有人在论坛(StackOverflow 或其他地方)上问过这个问题。
我的问题
这是我需要做的。在招聘办公室,他们有一台计算机,专门用于从人们那里获取 I9。这种情况经常发生。最后,我们希望能够关闭浏览窗口,因为这样会从 I9 Kiosk 中删除缓存、cookie(和登录信息)。
有没有办法关闭 PeopleCode 中的当前浏览器窗口?
我尝试过的
我知道关闭窗口在 JavaScript 中是微不足道的。您只需输入window.close() 并关闭浏览器窗口。如果我能在 PeopleCode 中做到这一点,我的问题就迎刃而解了。我还没有找到任何方法。
目前,在提交表单时会调用以下代码。
%Response.RedirectURL(GenerateScriptContentURL(%Portal, %Node, Record.WEBLIB_G_I9, Field.ISCRIPT1, "FieldFormula", "IScript_I9_CLOSE_KIOSK"));
在这个 FieldFormula 中,发生了以下代码:
%Response.Write(GetHTMLText(HTML.G_CLOSE_FORM_KIOSK));
这里是被引用的 HTML 的内容。
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>
window.close(); 没有被调用,页面只显示纯文本。是不是我做错了什么?
我试图路由到一个只有 HTML 区域的页面,并将 JavaScript 嵌入到该 HTML 中,但这似乎不起作用。我已经把这个页面和I9表单放在同一个组件中,并尝试调用TransferPage(Page.Y_CLOSE_WINDOW);但这似乎没有任何影响。这是因为页面的加载方式。
我的下一个想法是在 PeopleCode 中创建一个调用 JavaScript 的 JavaObject(使用 Rhino、Nashorn 或 javax.script.ScriptEngine),但它相当复杂,并且会让我不得不引入很多额外的代码和jars 只是为了运行一个简单的 JavaScript 命令。我真的不想这样做。
【问题讨论】:
标签: javascript java peoplesoft