如何在page_load()之前使用javascript填充html元素?

时间:2015-01-14 18:47:02

标签: javascript asp.net

可能是鸡/蛋问题。

基于这个答案:https://stackoverflow.com/a/27190520/1438215

我想使用javascript填充asp.net隐藏字段的值(尽可能的话),然后在服务器端的Page_Load事件中访问该填充字段的值。

示例:

aspx部分:

<div id="div_BrowserWindowName" style="visibility:hidden;">
    <input type="hidden" name="ctl00$ctl00$BodyContent$MainContent$hf_BrowserWindowName" id="BodyContent_MainContent_hf_BrowserWindowName" />
</div>
<script type="text/javascript">
            function PopBrowserWindowName() {
    if (typeof window.name != undefined) {
        if (window.name == '') {
            var d = new Date();
            window.name = '_myWnd_' + d.getUTCHours() + d.getUTCMinutes() + d.getUTCSeconds() + d.getUTCMilliseconds();
        }
        var eDiv = document.getElementById('div_BrowserWindowName');
        var e = eDiv.getElementsByTagName('input')[0];
        e.value = window.name;
        alert(e.value);
    }
          }

    window.onload = PopBrowserWindowName();
</script>    

aspx.cs部分(page_load)事件:

if (hf_BrowserWindowName != null)
       {string winID = hf_BrowserWindowName.Value;}

这在回发期间有效,但不适用于页面的初始加载。

1 个答案:

答案 0 :(得分:1)

Page_Load之前,没有HTML或JavaScript,因为响应尚未发送到客户端。您需要了解ASP.NET Page Lifecycle

您可以使用服务器端代码填充信息,或者在将页面发送到客户端后,您可以使用一些JavaScript填充信息。