Anlattığım kadarıyla, hiç kimse bu soruyu bir forumda (StackOverflow veya başka bir yerde) sormadı.PeopleCode'dan bir pencereyi nasıl kapatırım?
Sorunum
İşte yapmam gereken şey. İşe alım bürolarında, sadece I9'ları insanlardan almak için kullanılan bir bilgisayar var. Bu çok sık olur. En sonunda, tarama penceresini kapatabiliriz, çünkü önbellek, çerezler (ve giriş bilgileri) I9 Kiosk'tan kaldırılır.
Geçerli tarayıcı penceresini PeopleCode'un içinde kapatmanın bir yolu var mı? Ben
denedi Ne
Bir pencereyi kapatma JavaScript önemsiz olduğunu biliyoruz. Basitçe window.close()
'u koyarsınız ve tarayıcı penceresi kapanır. Bunu PeopleCode'da yapabilseydim, sorunum çözülecekti. Bunu yapmanın bir yolunu bulamadım.
Şu anda, formu teslim ettikten sonra aşağıdaki kod çağrılmaktadır. İşte
%Response.Write(GetHTMLText(HTML.G_CLOSE_FORM_KIOSK));
HTML içeriği başvuruluyor ise:
%Response.RedirectURL(GenerateScriptContentURL(%Portal, %Node, Record.WEBLIB_G_I9, Field.ISCRIPT1, "FieldFormula", "IScript_I9_CLOSE_KIOSK"));
bu FieldFormula içinde, aşağıdaki kod olur.
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();
Yalnızca bir HTML alanının bulunduğu bir sayfaya yönlendirmeyi denedim ve bu HTML'de JavaScript'i gömdüm, ancak bu çalışma görünmüyor. Bu sayfayı I9 formu ile aynı bileşene yerleştirdim ve TransferPage(Page.Y_CLOSE_WINDOW);
'u aramayı denedim ama bu hiç bir etkisi yok gibi görünüyor. Bunun nedeni, sayfaların yüklenme biçimidir.
Sıradaki düşüncem JavaScript'i (Rhino, Nashorn veya javax.script.ScriptEngine kullanarak) çağıran PeopleCode'da bir JavaObject oluşturmaktı, ancak oldukça karmaşıktır ve çok fazla kod eklemem gerekirdi ve sadece basit bir JavaScript komutunu çalıştırmak için kavanozlar. Bunu yapmayı gerçekten tercih ederim.
gibi HTML nesne ile onlar kapalı olduğunda net önbellek ve çerezler ayarlanır Kiosk bilgisayarlarda tüm tarayıcılar
kullanabilirsiniz geçerli oturumdaki çıkış için. Yani, kapanışa ek olarak çıkış yapmak da harika olurdu, bunun mümkün olduğunu düşünmedim. –
Bildiğim kadarıyla, ana tarayıcı penceresini javascript ile kapatmak mümkün değil, önbellek ve çerezleri otomatik olarak temizlemek de mümkün değil.Önbelleği ve çerezleri temizlemek neden gereklidir? Güvenlik nedeniyle mi? –
Önbellek ve çerezleri JavaScript ile temizleyemediğinizi biliyorum, ancak tarayıcı kapalıyken kullandığımız tüm tarayıcılarda (çoğunlukla Chrome/Firefox) mümkün oluyor. Ek bilgi arayacağım. Bu arada, bilgisayarın '% Response.Redirect (% Request.LogoutURL)' diyerek oturumu kapatmasına neden olabilirim; ' –