Avatar billede goje Nybegynder
03. oktober 2003 - 10:32 Der er 7 kommentarer og
1 løsning

Href onclick boolean return i netscape/mozilla

Jeg har et link med en onclick funktion der sætter en boolean for om navigeringen skal forstsætte.

Funktionen kaldes først, og en anden funktion sætter boolean værdien der er deklareret som en global variabel som standard er sat til false og kun bliver sat til true hvis nogle kriterier er opfyldte.

Det virker fint i IE, men det er somom Netscape/Mozilla læser boolean variablen onload og derfor ikke "opdager" når den ændres til true og navigeringen kan fortsætte.

Er der nogen der har en løsning, så netscape/mozilla læser værdien rigtigt?
Avatar billede di8leva Nybegynder
03. oktober 2003 - 10:34 #1
Må man se koden til functionen?
Avatar billede roenving Novice
04. oktober 2003 - 11:37 #2
-- eller et link f.eks.
Avatar billede goje Nybegynder
06. oktober 2003 - 09:33 #3
Jeg har lavet det hele en anelse om. Den globale variabel bliver sat fra et modal window i IE og virker fint herfra, da browseren venter på svar fra modal dialogen før den springer videre.

Problemet er, at jeg buger pop-ups i alle andre browsere og dem venter browseren ikke på. Er der en mulighed for at få scriptet til at "vente" på svar fra pop-up'en?
Avatar billede goje Nybegynder
06. oktober 2003 - 09:36 #4
var boolFollowLink = false;

function ShowLegalInformation(languageid) {
    var cookiecheck = getCookie('Legal');
    var cookiereferer = getCookie('Referer');
    var cookiebaseurl = getCookie('BaseUrl');
   
    if (cookiereferer == null)
        cookiebaseurl = '';   
    if (cookiebaseurl != null)
        cookiereferer = '';   

    cookiebaseurl.toString();
    cookiereferer.toString();
   
    if ((cookiecheck != 'DONE'))  {
        var url = '/popup/frameset.asp?sLangID=' + languageid;

        if (navigator.appName.indexOf('Microsoft') != -1) {
            if (navigator.appVersion.substr(0, 1) > 3)
                window.showModalDialog(url, window, 'dialogHeight: 450px; dialogWidth: 460px; center: yes; help: no; resizeable: no; status: no;');
            else {
                var legalwin = window.open(url,'legalinfo','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=NO,resizable=NO,width=460,height=450');
                legalwin.focus();
            }
        }
        else {
                var legalwin = window.open(url,'legalinfo','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=NO,resizable=NO,width=460,height=450');
                legalwin.focus();
        }
    } else {
        //Hvis cookie er sat, så autoaccepter og spring videre
        boolFollowLink = true;
    }
   
    return boolFollowLink;
}
Avatar billede roenving Novice
06. oktober 2003 - 17:26 #5
Prøv med en løkke, som kontrollerer at en kontrolvariabel er sat fra legalwin

var legalOk = false;

og så i popup'erne:

opener.legalOk = true;

når folk har gjort noget.

og en lille funktion, som looper indtil legalOk er ok ...

function waitForLegal(){
while(!legalOk){
t = (t+1)%1000;
}
}

-- har ikke prøvet sådan noget før, men prøv !-)
Avatar billede goje Nybegynder
21. oktober 2003 - 12:36 #6
Jeg havde helt glemt spørgsmålet herninde .. sorry.

Jeg har lavet noget der ligner, så din ide er god nok. Hvis du vil have point skal du lige svare :o)
Avatar billede roenving Novice
22. oktober 2003 - 01:09 #7
oki -- velbekomme '-)
Avatar billede roenving Novice
17. november 2003 - 13:55 #8
-- og tak for points ;~}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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