2012-03-30 5 views
0

Ich habe ein Steuerelement, das auf Update-Panel ist. Ich möchte, dass mein JavaScript-Code bei jeder Aktualisierung von updatePAnel ausgeführt wird. Ich habe so etwas verwendet:Objekt Erwarteter Fehler in der js-Datei

ScriptManager.RegisterStartupScript(this, GetType(), "my_script", "runFunction();", true); 

Alles hat gut funktioniert. Dann änderte ich meinen Code ein wenig, um js zu verwenden, um mit JS-Code-Datei:

ScriptManager.RegisterClientScriptInclude(this, GetType(), "my_script", "~\Scripts\MyScript.js"); 

Aber jetzt i Objekt Erwartete Fehler in MyScript.js erhalten.

was kann falsch sein?

EDIT:

mein js Code:

var http = getHTTPObject(); // We create the HTTP Object 

function checkFilesExists() { 
    var links = $('.PrIcon').find('a'); 

    for (i = 0; i < links.length; i++) { 
     if (!checkFileExists(links[i].href)) { 
      links[i].parentNode.parentNode.style.visibility = 'hidden'; 
     } 
    } 
} 

checkFilesExists(); 

function checkFileExists(handleRequest) { 
    /*http.onreadystatechange = handleHttpReceiveNewPwd;*/ 
    /*http.setRequestHeader('Content-Type', 'application/pdf');*/ 
    try { 
     http.open('HEAD', handleRequest, false); 
     http.send(null); 
     return http.status == 200; 
    } catch (e) { 
     return false; 
    } 
} 

function getHTTPObject() { 
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     var obj = new XMLHttpRequest(); 
     if (obj.overrideMimeType) { 
      obj.overrideMimeType('application/pdf'); 
     } 
    } 
    else if (window.ActiveXObject) { // IE 
     try { 
      var obj = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try { 
       var obj = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e) { } 
     } 
    } 
    if (obj) 
     return obj; 
} 

der Fehler tritt auf dieser Zeile: var. Links = $ ('Pricon ') finden (' a');

+0

Ich denke, wir müssen die Funktion 'runFunction()' sehen, die wahrscheinlich diesen Fehler verursacht. Auf welcher Zeile tritt dieser Fehler auf, wenn Sie in der JavaScript-Konsole (F12) suchen? –

Antwort

0

Ihr Skript scheint von einigen anderen (wahrscheinlich jQuery) zu hängen, aber ScriptManager.RegisterClientScriptInclude rendert das <script>-Tag zu früh auf der Seite (bevor das Skript, von dem Sie abhängen, interpretiert wird und somit die notwendigen Objekte nicht erzeugt). Eine bessere Option sein in diesem Fall die ScriptManager.RegisterStartupScript Methode zu verwenden, sondern stattdessen den Skript Körper vorbei, so werden sie den gesamten <script>-Tag mit Ihrem Skript Adresse übergeben:

ScriptManager.RegisterStartupScript(updatePanel, updatePanel.GetType(), "a_key", "<script type='text/javascript' src='my_script.js'></script>", false); 

Beachten Sie, dass der letzten Parameter, der die addScriptTags setzt Flag wird auf "false" gesetzt, sodass Sie das gesamte Tag mit dem definierten src-Attribut rendern können.

Verwandte Themen