Hier der Code von Statistik.js, außerdem verwende ich Scriptaculous.
Quellcode
- HandleFriends = Class.create();
- HandleFriends.prototype =
- {
- initialize: function(e)
- {
- },
- delFriend: function(id)
- {
- var pars = 'newid='+id+'&action=delnewfriend';
- new Ajax.Request(
- '/ajax/statistik.php',
- {
- method: 'post',
- parameters: pars,
- asynchronous:true,
- onSuccess: this.doDelFriend.bind(this),
- onFailure: this.handleFailure.bind(this)
- });
- },
- doDelFriend: function(response)
- {
- try
- {
- var notifyData = eval('(' + response.responseText + ')');
- }
- catch(e)
- {
- $('testMsg').innerHTML = 'Fehler beim Entfernen!';
- return;
- }
- new Effect.Fade('friend'+notifyData.id, {duration : 0.8});
- //$('testMsg').innerHTML = notifyData.noError;
- },
- addFriend: function(id)
- {
- var pars = 'newid='+id+'&action=add2friends';
- new Ajax.Request(
- '/ajax/statistik.php',
- {
- method: 'post',
- parameters: pars,
- asynchronous:true,
- onSuccess: this.doAddFriend.bind(this),
- onFailure: this.handleFailure.bind(this)
- });
- },
- doAddFriend: function(response)
- {
- try
- {
- var notifyData = eval('(' + response.responseText + ')');
- }
- catch(e)
- {
- $('testMsg').innerHTML = 'Fehler beim Hinzufügen!';
- return;
- }
- new Effect.Fade('addLink'+notifyData.id, {duration : 0.8});
- new Effect.Fade('delLink'+notifyData.id, {duration : 0.8});
- //$('testMsg').innerHTML = notifyData.noError;
- },
- handleFailure: function(response)
- {
- $('testMsg').innerHTML = 'Fehler';
- },
- }
- var objHandleFriends = new HandleFriends();
edit:
habs jetzt so versucht aber da kommt der gleiche fehler
Quellcode
- var objHandleFriends = {
- 'delFriend' : function(id)
- {
- var pars = 'newid='+id+'&action=delnewfriend';
- new Ajax.Request(
- '/ajax/statistik.php',
- {
- method: 'post',
- parameters: pars,
- asynchronous:true,
- onSuccess: this.doDelFriend.bind(this),
- onFailure: this.handleFailure.bind(this)
- });
- },
- 'doDelFriend' : function(response)
- {
- try
- {
- var notifyData = eval('(' + response.responseText + ')');
- }
- catch(e)
- {
- $('testMsg').innerHTML = 'Fehler beim Entfernen!';
- return;
- }
- new Effect.Fade('friend'+notifyData.id, {duration : 0.8});
- //$('testMsg').innerHTML = notifyData.noError;
- },
- 'addFriend' : function(id)
- {
- var pars = 'newid='+id+'&action=add2friends';
- new Ajax.Request(
- '/ajax/statistik.php',
- {
- method: 'post',
- parameters: pars,
- asynchronous:true,
- onSuccess: this.doAddFriend.bind(this),
- onFailure: this.handleFailure.bind(this)
- });
- },
- 'doAddFriend' : function(response)
- {
- try
- {
- var notifyData = eval('(' + response.responseText + ')');
- }
- catch(e)
- {
- $('testMsg').innerHTML = 'Fehler beim Hinzufügen!';
- return;
- }
- new Effect.Fade('addLink'+notifyData.id, {duration : 0.8});
- new Effect.Fade('delLink'+notifyData.id, {duration : 0.8});
- //$('testMsg').innerHTML = notifyData.noError;
- },
- 'handleFailure' : function(response)
- {
- $('testMsg').innerHTML = 'Fehler';
- },
- }
Problem wurde gelöst
ich zitiere:
Bei expliziter Eigenschaftsdefinitinon eines Objekts dienen Kommas nicht als abschliessende Befehlsparameter sondern als Variablenseparatoren. Das letzte Komma (hinter "handleFailure") ist also zu viel.
Der MSIE nimmt die Syntaxvorschrift an dieser Stelle genau und erwartet eine weitere Eigenschaft - andere Browser sehen grosszügig darüber hinweg, was man auch als Förderung fehlerbehafteter Programmierung bezeichenen könnte...
Mit freundlichen Grüssen
Baldi