2010-11-25 27 views
1

J'utilise un UpdatePanel pour échanger le ActiveView d'un MultiView.Erreur JavaScript lors de l'utilisation ASP.NET UpdatePanel

Dans IE6, 7 et 8 et Chrome 7, j'obtiens une erreur JavaScript lors du retour de UpdatePanel. Dans Firefox 3.6.1, aucune erreur n'est signalée (dans la console d'erreur ou dans Firebug).

L'erreur est en ligne 3621 de ScriptResource.axd

function Sys$_ScriptLoader$_loadScriptsInternal() { 
    var session = this._currentSession; 
    if (session.scriptsToLoad && session.scriptsToLoad.length > 0) { 
     var nextScript = Array.dequeue(session.scriptsToLoad); 
     var scriptElement = this._createScriptElement(nextScript); 

     if (scriptElement.text && Sys.Browser.agent === Sys.Browser.Safari) { 
      scriptElement.innerHTML = scriptElement.text; 
      delete scriptElement.text; 
     }    
     if (typeof(nextScript.src) === "string") { 
      this._currentTask = new Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate); 
      this._currentTask.execute(); 
     } 
     else { 
      var headElements = document.getElementsByTagName('head'); 
      if (headElements.length === 0) { 
       throw new Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead); 
      } 
      else { 
line 3621:  headElements[0].appendChild(scriptElement); 
      } 


      Sys._ScriptLoader._clearScript(scriptElement); 
      this._loadScriptsInternal(); 
     } 
    } 
    else { 
     this._stopSession(); 
     var callback = session.allScriptsLoadedCallback; 
     if(callback) { 
      callback(this); 
     } 
     this._nextSession(); 
    } 
} 

Uncaught SyntaxError: Unexpected number

outils pour les développeurs de Chrome montrent que headElements est un NodeList avec un élément et que scriptElement est un HTMLScriptElement NodeList and ScriptElement

Quelle pourrait être la cause de cette erreur? Pourquoi est-ce seulement évident dans IE et Chrome, et non Firefox?

+3

Très probablement, quelque chose dans le code. Pouvez-vous partager le code dans lequel vous effectuez l'échange? –

Répondre

4

Il y avait une erreur dans le script que je produisais dans le ScriptManager.RegisterStartupScript. Cela provoquait une erreur d'exécution lorsque le navigateur analysait le JavaScript lorsque la balise <script> était ajoutée au DOM, comme suggéré par @Rahul dans les commentaires.

+0

Merci beaucoup pour cette question et la réponse. Il me manquait une apostrophe '' 'dans mon script, ce qui a en fait conduit un nombre assis là dans un endroit syntaxiquement incorrect. – Oliver