&引用;getElementById返回未定义的“;在JavaScript中访问asp:HiddenField时?

&引用;getElementById返回未定义的“;在JavaScript中访问asp:HiddenField时?,javascript,asp.net,Javascript,Asp.net,我有母版页/ContentPage,在ContentPage.aspx文件中我有java脚本code。我想将java脚本代码从ContentPage.aspx移到一个单独的js文件中,并执行以下操作: //在ContentPage.aspx中 <script type="text/javascript" src='<%= ResolveClientUrl("~/file1.js") %>'></script> 在file1.js中,我复制并粘贴所有jav

我有母版页/ContentPage,在
ContentPage.aspx
文件中我有
java脚本
code。我想将java脚本代码从
ContentPage.aspx
移到一个单独的js文件中,并执行以下操作:

//在ContentPage.aspx中

<script type="text/javascript" src='<%= ResolveClientUrl("~/file1.js") %>'></script>

在file1.js中,我复制并粘贴所有java脚本代码。在java脚本代码中,我有一行代码:

//file1.js:

var hiddenvar1 = document.getElementById('<%=hiddenvariable1.ClientID%>');
var hiddenvar1=document.getElementById(“”);

…然后,我无法获取该变量的值(hiddenvar1.value),因为对象hiddenvar1为null。javascript代码在ContentPage.aspx中时正在运行。当我将它移动到file1.js时,它不再工作了

页面加载
代码

ClientScript.RegisterClientScriptBlock(typeof(Page), 
Guid.NewGuid().ToString("N"), "MyjavaScriptFunction('" + 
MyHiddenField.ClientID + "');", true);

JavaScript
“在DOM加载后”执行这些操作(搜索这意味着什么)。对于初始加载或正常回发,将脚本放在“body元素的最底部”(搜索onload/foot脚本的争论)就足够了。它也应该在ASPX页面的最底部工作。改变的是JavaScript和DOM创建的执行顺序。搜索“getElementById undefined”。可能重复(仔细阅读答案)@pst,这似乎不是重复的帖子。OP请求访问单独JavaScript文件中的隐藏字段。@Guest完全相同,但存储在一个文件中。
function abc(ObjID){
    var Val = document.getElementById(ObjID).value;
    alert(Val);
}