Javascript callback functie werkt alleen in chrome

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java developer met testervaring

Java developer met testervaring Functieomschrijving "De drempel tussen de burger en de Belastingdienst zo laag mogelijk houden: dat is de belangrijke taak van ons team. Dit doen we door het burgerportaal Mijn Belastingdienst continu te verbeteren." René, Java-specialist bij de Belastingdienst. De keten Interactie is een samenwerkingsverband van alle dienstonderdelen binnen de Belastingdienst. Samen zorgen we dat het contact met burgers en bedrijven goed kan plaatsvinden. Onze belangrijkste opgave? Zoveel mogelijk digitaliseren. Dat doen we binnen het onderdeel Informatievoorzieningen (IV), de ICT-organisatie van de Belastingdienst. Denk bij de producten die IV-Interactie ontwikkelt en onderhoudt aan portalen, formulieren en authenticatie- en

Bekijk vacature »

Tim S

Tim S

06/04/2013 17:19:30
Quote Anchor link
Hallo,

Omdat het maken/toevoegen van een module in mijn cms veel code nodig had heb ik het volgende gemaakt in javascript:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
function mDialog(dialog){
    
    this.autoOpen = true;    
    this.height = 400;
    this.width = 600;
    this.modal = true;
    this.proceedHandler = null;
    this.dialog = dialog;
    this.proceedButton = 'Opslaan';
    this.abortButton = 'Annuleren';
    
}

mDialog.prototype.setProceedButton = function(name){
    
    this.proceedButton = name;    
    
}

mDialog.prototype.setAbortButton = function(name){
    
    this.abortButton = name;    
    
}

mDialog.prototype.setProceedHandler = function(handler){
    
    this.proceedHandler = handler;
    
}

mDialog.prototype.display = function(){
    
    //window.Dialog = this;
    var mDialog = this;
    var cButtons = {};
    
    cButtons[this.proceedButton] = function(){
        
        //var Dialog = window.Dialog;
        var Dialog = mDialog;
        alert('dit werkt');        
        setTimeout(function(){
                
            callback(Dialog.proceedHandler());
            
        },5);
            
        $(this).dialog('close');
        
    }
    cButtons[this.abortButton] = function(){
        
        $(this).dialog('close');
        
    }
    
    $(this.dialog).dialog({
        
        autoOpen : this.autoOpen,
        height     : this.height,
        width     : this.width,
        modal     : this.modal,
        buttons  : cButtons
            
    })
}


In gebruik doe ik dan dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(document).on('click','#een-button',function(){
    
    var dialog = new mDialog('#een-dialog');
    
    dialog.setProceedHandler(function(){
    
        alert('Dit krijg ik alleen te zien in chrome');
        
                var poster = new mPoster;
        poster.setForm('#een-form');
        poster.setSuccessMessage('Een bericht');
        poster.post();    
    
    })

    dialog.display();
    
});


Nu is het probeem dat de callback functie in de mDialog.prototype.display alleen werkt in chrome en niet in ie safari en firefox. Heeft iemand enig idee waar dat aan kan liggen??

Alvast bedankt.

Toevoeging op 06/04/2013 19:17:31:

Het is opgelost, dit: callback(Dialog.proceedHandler());
moest zijn callback(Dialog.proceedHandler);

Ik had het al getest maar ben denk de cache vergeten te legen. Oevergrens toch vreemd dat het in chrome wel werkte.
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.