2

我想从服务器端访问用户屏幕分辨率。为此,我可以asp hidden控制:

<asp:HiddenField runat="server" ID="hdnScreenResolution" />

实际在页面上呈现:

<input type="hidden" name="ctl00$MainContent$hdnScreenResolution" id="MainContent_hdnScreenResolution" />

我使用 javascript 函数在其中插入值:

$(document).ready(function () {
   var width = screen.width;
   var height = screen.height;

   var hiddenScreenResolution = document.getElementById('<%= hdnScreenResolution.ClientID
    %>'); 
   hiddenScreenResolution.value = "asass";
});

它在页面源代码上:

       $(document).ready(function () {
            var width = screen.width;
            var height = screen.height;

            var hiddenScreenResolution = document.getElementById('MainContent_hdnScreenResolution'); 
            hiddenScreenResolution.value = "asass";
        });

在服务器端,我检查隐藏值Page_Load()

protected void Page_Load(object sender, EventArgs e)
{
    var hiddenValue = hdnScreenResolution.Value;
}

但值似乎是空字符串。使用 jquery 没有帮助。

直接插入:document.getElementById('<%= hdnScreenResolution.ClientID %>').value = "asdasd"; 没有帮助。

可能是什么问题?

PS我想我捕捉屏幕分辨率document.ready为时已晚。页面卸载后 javascript 会触发。因此,在初始请求时无需更改即可捕获它。

期待答案。

4

1 回答 1

1

Page_Load在将 html 发送到客户端并执行 jQuery 之前调用服务器端,document.ready因此您在使用 javascript 在客户端上分配之前访问值,您应该为空。

您需要将值从客户端发送到服务器,您可以使用 jQuery ajax 进行回发以获取服务器上的屏幕坐标值。

要查看发生了什么,只需添加 asp:button 并在其服务器端事件中访问隐藏字段值。

于 2013-01-10T12:53:13.820 回答