2009-09-23 8 views
0

J'ai un problème avec le frameset en panne et j'ai obtenu un peu d'aide ici sur le forum. Maintenant, j'ai finalement retrouvé quand les choses vont vers le sud alors voici mon problème actuel.Ajax casse le cadre dans IE seulement

1 J'ai un frameset avec Top, Menu et Main 2. Liens dans les vues de menu ouvertes dans Main 3. Cela se décompose lorsque vous sauvegardez des documents dans Main. Après avoir enregistré tous les liens dans le menu s'ouvrira dans une nouvelle fenêtre. MAIS - Et voici la chose vraiment étrange que j'ai découverte après deux jours de vérification de la cible de base et ainsi de suite.

Je ne désintègre que si je change une valeur qui déclenche un appel Ajax. Si j'ajoute un commentaire dans le champ commentaire ou si je change une valeur numérique, tout est bon. Je peux enregistrer et le cadre est intact et fin. Si je change une liste déroulante qui déclenche un appel Ajax avant d'enregistrer, mon cadre se décompose.

Ceci est IE (7 et 8) seulement et Firefox n'a pas ce problème.

Ceci est un exemple de mon code Ajax (j'ai environ 4 appels différents)

function fillUtmelding(refnr){ 
       var f = document.forms[0]; 

    var url = getDbUrl() + '/(FinnBeholdningValg)?OpenAgent&refnr=' + refnr + "&dbid=C1256B7D0033B1DF" + "&" + Math.round(Math.random() * 500); 

     var fondOppslag = new Ajax.Request(url, { 
     method: 'get', 
     onComplete: function(req){ 
      var liste = req.responseText; 

      var startListe = liste.split(';'); 

       arrListe = startListe[0].split('$'); 
                   f.f.value = arrListe[0]; 
                   f.fisin.value = arrListe[1]; 
                   f.andeler.value = arrListe[2]; 

      for (j = 1; j < 14; j++) { 
       name = "f_" + j; 
       fisin = "fisin_"+ j; 
                   andeler = "andeler_" +j;            

        var nyListe = startListe[j].split('$') 

        if (nyListe[1] != 'Plassering'){ 
                       f[name].value = nyListe[0]; 
                       f[fisin].value = nyListe[1]; 
                       f[andeler].value = nyListe[2]; 
                       } 

      } 
     } 
    }); 
} 

Edit: Je n'ai aucun problème avec les ajax appelle aussi loin que je peux voir. Je récupère des valeurs et les utilise comme prévu. Pourrait-il y avoir un paramètre keepAlive ou quelque chose qui fait cela?

+0

1) Que voulez-vous dire par "décomposer"? 2) Où/quoi est 'name' dans votre extrait de code? Ce n'est pas défini nulle part là-dedans. 3) Vous comptez sur l'insertion de point-virgule, ce qui est une très mauvaise idée. Terminez vos déclarations explicitement avec des points-virgules. –

+0

1) Les moyens de décomposition s'ouvrent dans une nouvelle fenêtre plutôt qu'à l'intérieur du cadre appelé "Main" 2) Eh bien, toute la page serait beaucoup plus longue et ce n'est qu'un exemple de l'appel AJAX 3) Je ne pense pas que ce soit problème, partout est comme ça et ça marche (l'appel ajax est complété à 100%) –

Répondre

0

Quelque part dans le code JS du cadre à droite il y avait une fonction à l'intérieur qui était:

name = "(something)"; 

Bien sûr, sans var spécifié. IE est devenu fou, car il ressemble à cette simple ligne a changé le nom de l'image .... puis lorsque vous cliquez sur l'autre image, il n'a pas pu trouver ainsi ouvre le contenu dans une nouvelle fenêtre.

Problème résolu.

PS. Faites attention à ce que vous utilisez pour le nom de la variable :)

Questions connexes