الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف امنع المستخدم من عمل Back

Featured Replies

بتاريخ:

السلام عليكم

عندى صفحتين

الاولى هى login page  و فيها يقوم المستخدم بعمل login  كما فى المثال الموجود فى الرابط http://kohlivikram.blogspot.com/2008/10/how-to-create-simple-login-page-in-adf.html

 

و الصفحة الثانية هى  main page  و فيها بعض البيانات التى تظهر

 

المشكله هو ان المستخدم يستطيع الضغط على زر back  الموجود ب Internet explorer  فيرجع الى صفحة اللوجن 

اريد ان امنع المستخدم من الرجوع الى اللوجن حتى لو ضغط على back

فما الحل

 

كذلك اريد ان امنع المستخدم من الدخول على صفحه ال main  بدون المرور باللوجن 

كيف ذلك

ارجو المساعده

بتاريخ:

 

بالنسبه للسؤال التانى مرر باراميتر فيه قيمه معينه مثلا user id   وفى الفورمه التانيه عند الفتح شيك على القيمه لو null  اعمل exit_form   اما السؤال الاول مش عارف بس انا بستخدم السبراتور فرام

 

تم تعديل بواسطة MACO_MACO71

بتاريخ:
  • كاتب الموضوع

انا بتكلم ك ADF  مش اوراكل فورمز

بتاريخ:

أخي الكريم طارق لحل هذه المشكله يجب عليك استخدم java servlet filter

وربنا يوفقك

 

l

بتاريخ:

may this tick not optimal but this 4 me .. use TaskFlow fragment  jsff

بتاريخ:
  • كاتب الموضوع

 

may this tick not optimal but this 4 me .. use TaskFlow fragment  jsff

 

انت معاك حق . طبعا اسهل حاجة انى استخدم fragments

بس فى الحالى اللى معايا مشنفعش استخدم fragment 

و لازم الصفجة اللى فيها اللوجون صفحة منفصلة

 

بالنسبة لحل الاخ ماجد  اللى هو java servlet filter

دة ممكن يكون فعلا هو منفتاح الحل 

و انا لسة هدور فيه

شكرا جزيلا

بتاريخ:

Dear

 

Servlet Filter is the solution for your case :)

 

good luck

بتاريخ:

استخدم الجافا سكربت 

انا مجربها وشغاله معايا تممام

بتاريخ:

اتفضل اخي طارق انت في adfc-config

ضيف صفحتين واعمل اتصال بينهم 

 
<?xml version="1.0" encoding="windows-1252" ?>
<adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
    <view id="page1">
        <page>/page1.jspx</page>
    </view>
    <view id="page2">
        <page>/page2.jspx</page>
    </view>
    <control-flow-rule id="__1">
        <from-activity-id>page1</from-activity-id>
        <control-flow-case id="__2">
            <from-outcome>navigate</from-outcome>
            <to-activity-id>page2</to-activity-id>
        </control-flow-case>
    </control-flow-rule>
    <control-flow-rule id="__3">
        <from-activity-id>view1</from-activity-id>
        <control-flow-case id="__4">
            <from-outcome>go</from-outcome>
            <to-activity-id>view2</to-activity-id>
        </control-flow-case>
    </control-flow-rule>
</adfc-config>

وبعدين انشاء الصفحة الاولي

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
        <af:document title="page1.jspx" id="d1">
            <af:form id="f1">
                <af:panelStretchLayout id="psl1">
                    <f:facet name="center">
                        <af:panelGroupLayout layout="scroll" id="pgl1">
                            <af:outputText value="Page 1" id="ot1"/>
                            <af:commandButton text="Navigate" id="cb1" action="navigate"/>
                        </af:panelGroupLayout>
                    </f:facet>
                </af:panelStretchLayout>
                <af:resource type="javascript">
                    var registerDisableBackButton = function () {
                        disableBackButton();
                        window.onload = disableBackButton();
                        window.onpageshow = function (event) {
                            if (event.persisted) {
                                disableBackButton()
                            }
                        }
                        window.onunload = function () {
                            void (0);
                        }
                    }

                    var disableBackButton = function () {
                        window.history.forward();
                    }

                    var onLoadEvent = function(event) {
                        registerDisableBackButton();
                    }
                </af:resource>                
            </af:form>
            <af:clientListener method="onLoadEvent" type="load"/>
        </af:document>
    </f:view>
</jsp:root>

وهنا انا ضيفت <af:resource type="javascript">

 

وبداخله كود الجافا اسكربت اللي بيمنع تشغيل زر الرجوع في المتصفح

 

وخارج </af:form>

ضيف <af:clientListener method="onLoadEvent" type="load"/>

 

لتنفيذ كود الجافا اسكربت

 

اما الصفحة التاتية عادية ضيف <af:outputText value="Page 2" id="ot1"/>

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
        <af:document title="page2.jspx" id="d1">
            <af:form id="f1">
                <af:outputText value="Page 2" id="ot1"/>
            </af:form>
        </af:document>
    </f:view>
</jsp:root>

وبعدين اعمل رن واضغط علي زر Navigate هتنتقل للصفحة التانية 

لو عملت رجوع من المتصفح مش هيرجع معك

 

وربنا معاك ويوفقك ...

 

والابلكيش في المرفق ...

JavaScriptButtonBack.rar

بتاريخ:
  • كاتب الموضوع

جزاك الله خير بشمهندس احمد

انا جربت الكود بس للاسف مستغلش على جوجل كروم و لا على اكسبلورر 10

تم تعديل بواسطة tarek_fathi

بتاريخ:

هو عندي شغال ع كروم تمام اما اكسبلورر 10 انا مجربتهوش ...

ربنا معاك وانا لو لقيت حل اكيد هبعته لك ان شاء الله ...

بتاريخ:
  • كاتب الموضوع

اتفضل يا طارق دي طريقة تانية ...

http://said-adf.blogspot.com/2013/05/disable-browser-back-button.html

شكرا جزيلا يا احمد على مجهودك

بس للاسف هى مشتغلتش على IE 10  و لا على chrome on window 8

يمكن المشكلة فى ويندوز 8 

بس انا استفدت من فكرة استخدام ال js  نفسها

 

بتاريخ:

يفضل تجنب الجافا سكريبت والسبب تعدد المتصفحات
فلكل متصفح محرك خاص به يفسر الكود على طريقته الفايرفوكس والكروم متقاربان اما الاكسبلورر
الفاشل الذي يصلح لأن يكون برنامج لتنزيل متصفح حقيقي "فايرفوكس او الكروم" دائما ما يسبب المشاكل سوا من الجافا سكربت او من JQuery وللأسف فهو موجود بكثره لدى الشركات والمؤسسات لانه يأتي بشكل أفتراضي مع المتصفح
افضل استخدام java servlet filter

ويمكن تطلب من احد الاعضاء الخبرة تقديم شرح بسيط عنها


 

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.