2012-03-30 90 views
0

我有一个在更新面板上的控件。每次更新updatepanel时,我都想运行我的JavaScript代码。我用这样的东西:对象js文件中的预期错误

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

一切工作正常。然后,我改变了我的代码有点为了用js与JS代码文件:

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

但现在我得到MyScript.js预期的对象错误。

什么可能是错的?

编辑:

我的js代码:

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; 
} 

这条线上发生错误:VAR链接= $( 'PrIcon ')找到(' A');

+0

我想我们需要看到函数'runFunction()'这可能引发这个错误。当你在javascript控制台(F12)中查看时,你会在哪一行看到这个错误? – 2012-03-30 10:29:56

回答

0

你的脚本似乎取决于其他一些(也许jQuery的),但ScriptManager.RegisterClientScriptInclude呈现<script>标签页面中的太早(脚本之前您的依赖于解释,因此,没有创造必要的对象)。在这种情况下,更好的选择是使用ScriptManager.RegisterStartupScript方法,但不是通过脚本的身体,你必须与你的脚本的地址传递整个<script>标签:

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

注意,最后一个参数,这台addScriptTags标志设置为false,允许您使用定义的src属性呈现整个标签。