2012-08-31 54 views
0

應用程序在導航欄中有一個Home項目(該項目位於所有頁面中)。我希望在點擊家庭項目時,根據頁面編號向用戶顯示一個警告框,警告他們所有未保存的工作將會丟失。如果用戶按是,他或她將被帶到應用程序主頁並且不會保存任何內容。如果他們按否,他或她將留在頁面中。單擊Oracle APEX導航欄項目時的條件操作

當前這個對話框顯示在每個頁面中。在Oracle Application Express,shared components > navigation bar > target area,這些都是我的設置:

目標類型= url

URL目標=

javascript:if(confirm('All unsaved work will be lost?')) 
{window.location.href ='f?p=&APP_ID.:1:&SESSION.:&APP_PAGE_ID.';} 

我想這種行爲只發生在一些選定的頁面。當用戶單擊未包含在此列表中的頁面時,不應顯示警告框並將用戶帶到應用程序主頁。

回答

1

你想要什麼是一個動態的行動,目標導航欄條目。但是,除了測試定位標記的文本外,沒有簡單的方法可以選擇性地啓用或禁用此選項上的操作。這意味着你會在你的動態行爲中硬編碼來測試鏈接,我不會推薦它。 沒有可分配的類,也沒有onclick事件。
你可以使用你發佈的代碼,並有一個javascript函數,它將頁面id作爲輸入參數,然後檢查頁面id與允許該操作的頁面列表,但又複雜。它可以使一些Ajax變得動態,但由於你不熟悉JavaScript,最好先解決它,然後再解決它。
因此,不要發明這樣的東西,看看這save before exit plugin。它會檢查未保存的更改,並且可以將其添加到您想要的頁面上。

相關問題