2016-03-29 19 views
0

私が知る限り、誰もフォーラム(StackOverflowまたは他の場所)でこの質問をしたことはありません。PeopleCodeからウィンドウを閉じるにはどうすればいいですか?

私の問題

これは私がする必要があります。雇用事務所には、I9を人から受け取るためだけに使用されるコンピュータがあります。これは非常に頻繁に起こります。最後に、キャッシュ、クッキー(およびログイン情報)がI9キオスクから削除されるため、ブラウジングウィンドウを閉じることができます。

PeopleCode内の現在のブラウザウィンドウを閉じる方法はありますか?私は、ウィンドウを閉じるとJavaScriptで自明であることを知っている

を試してみましたが、何

window.close()と入力すると、ブラウザウィンドウが閉じます。 PeopleCodeでこれを行うことができれば、私の問題は解決されます。私はそれを行う方法が見つかりませんでした。
現在、フォームを送信すると、次のコードが呼び出されます。このFieldFormulaインサイド

%Response.RedirectURL(GenerateScriptContentURL(%Portal, %Node, Record.WEBLIB_G_I9, Field.ISCRIPT1, "FieldFormula", "IScript_I9_CLOSE_KIOSK")); 

、次のコードの処理が行われます。ここでは

%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領域のみを持つページにルーティングしようとしましたが、そのHTMLにJavaScriptを埋め込んでいますが、動作していません。私はこのページをI9フォームと同じコンポーネントに置き、TransferPage(Page.Y_CLOSE_WINDOW);を呼び出しようとしましたが、これは影響がないようです。これは、ページが読み込まれる方法が原因です。

私の次の考えは、JavaScriptを(Rhino、Nashorn、またはjavax.script.ScriptEngineのいずれかを使用して)呼び出すPeopleCodeでJavaObjectを作成することでしたが、複雑で、余分なコードをたくさん導入する必要があります簡単なJavaScriptコマンドを実行するだけのjarファイルです。私は本当にこれをしないことを好むだろう。

答えて

1

以前にwindows.open()で開かれたwindow.close()でウィンドウを閉じることのみが許可されています。私はこれがなぜ機能しないのかと思う。

I.E.あなたのブラウザはそれを防ぎます。これを回避するためにいくつかのブラウザにハックが存在すると、それはセキュリティ上のバグです。例えばwindow.top.close()はIEでは動作しますが、Firefoxでは動作しません。

本当にPeoplesoftのログアウトを使わずにウィンドウを閉じたいですか?現在のセッションからログアウトするには、

<!% *** Logout Session *** --> 
<script language="JavaScript"> 
    var timer = null 
    function move() { 
     window.location = '%BIND(:1)' 
    } 

    timer=setTimeout('move()',2000) 
</script> 
+0

のようなHTMLオブジェクトと

GetLevel0()(1).CS_SESSION_WK.HTMLAREA.Value = GetHTMLText(HTML.CS_SESSION_LOGOUT, %Request.LogoutURL); 

を使用することができますキオスクコンピュータ上のすべてのブラウザは、それらを閉じたとき、キャッシュとCookieをクリアするように設定されています。だから、閉鎖に加えてログアウトすることは素晴らしいだろうが、私はそれが可能だとは思わなかった。 –

+0

私が知る限り、javascriptでメインブラウザのウィンドウを閉じることはできませんし、自動的にキャッシュとクッキーをクリアすることもできません。キャッシュとCookieをクリアする必要があるのはなぜですか?セキュリティ上の理由から? –

+0

JavaScriptでキャッシュやCookieをクリアできないことは知っていますが、ブラウザを閉じたときに使用するすべてのブラウザ(ほとんどはChrome/Firefox)で可能です。私は追加情報を探します。ちなみに、私は '%Response.Redirect(%Request.LogoutURL));と呼んでコンピュータをログアウトさせることができます。 –

関連する問題