Avatar billede hnteknik Novice
14. september 2008 - 21:38 Der er 5 kommentarer og
1 løsning

How to Skip Confirm "Er du nu helt sikker "

Brugere bliver hurtig trætte af at klikke på
confirm("Er du helt sikker ,,,") popups

Jeg har en 100 af disse rundt omkring i scripts og vil gerne tilbyde 'den erfarne' bruger at slå disse popups fra.

Jeg forstiller mig at en der sættes en Session("confirmNejTak") via en toggle function og den sættes ind function ala denne:

function confirmAction(message)
        {
            if (confirm(message) == true)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
Men er der nogen, som har en effektiv løsning man kunne bruge?

Henrik
Avatar billede softspot Forsker
14. september 2008 - 21:48 #1
Jeg er ikke sikker på om du kan slå den fra globalt (f.eks. ved at sætte en anden handler på window-objektet), men det ville måske også være lige lovligt risikabelt.

Derfor ser jeg ikke umiddelbart andre muligheder, end at du pakker alle dine confirm-dialoger ind som du selv har vist og så alt afhængig af om brugeren ønsker confirm-dialoger, omdefinerer funktionen så den passer til brugerens valg.

Eksempel:

<%
if session("confirmNejTak") then
%>
function confirmAction(message) { return true; };
<%
else
%>
function confirmAction(message) [ return confirm(message); };
<%
end if
%>

Alle steder hvor confirm er kodet ind i dine scripts, skal du så i stedet kalde confirmAction.
Avatar billede softspot Forsker
14. september 2008 - 21:51 #2
Ups! Der sneg sig lige en knastefejl ind. Rettelse herunder:

<%
if session("confirmNejTak")&""="True" then
%>
function confirmAction(message) { return true; };
<%
else
%>
function confirmAction(message) { return confirm(message); };
<%
end if
%>

Desuden har jeg lige lavet en lidt mere eksplicit kontrol på indholdet af session-variablen...
Avatar billede jokkejensen Novice
14. september 2008 - 21:59 #3
en js cookie, ville også gøre tricket, og så slipper man for at blande det hele sammen.

Vh.
Avatar billede w13 Novice
15. september 2008 - 08:57 #4
Eksempel med cookies:

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

function confirmAction(message) {
        if (!readCookie('cookieNoConfirm')) {
            if (confirm(message) == true) {
                return true;
            } else {
                return false;
            }
        } else {
            return true;
      }
}

Så tjekker den, om du har sat cookien cookieNoConfirm til "true".

Det kan du gøre med:

createCookie('cookieNoConfirm','true',365);
Avatar billede hnteknik Novice
15. september 2008 - 09:58 #5
Tak for svarene.

-> w13 - elegant måde med cookie
Takker
Avatar billede w13 Novice
15. september 2008 - 11:00 #6
Og tak for point! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester