如何使用C#获取文档高度?

时间:2012-12-21 09:28:22

标签: c# asp.net

我正在使用ASP.NET和C#。我可以使用javascript来获取文档高度。

var h = document.documentElement.offsetHeight;

现在我在页面加载期间需要这个值。但是javascript将在pageload之后开始逐渐消失。所以现在我需要使用服务器端代码(C#)来获取它。

有可能吗?

编辑:

在页面加载中,我计划根据文档高度设置所有标记的高度。 这样页面就适合所有分辨率。

2 个答案:

答案 0 :(得分:3)

根据定义,服务器端代码无法获取此值。

但是,您可以使用JavaScript通过AJAX将值传递回ASP.NET脚本,并采取您需要采取的任何操作。当然,这意味着您无法为不同的屏幕尺寸提供不同的内容,但这一切都取决于您的意图。

由于你需要在页面加载,一个非常非常hacky的方法是检测浏览器高度,然后重定向,例如将其作为查询字符串值传递,您可以直接在PageLoad中使用。我的具体含义是,使用JavaScript来检测此QS值(例如?ph=768),如果不存在,则将页面重定向到自身,并附加在?ph=768上。这样你就可以用它来获取文档加载的页面高度。

正如@ J.Steen在评论中提到的那样,定义你的意图可能更好。

答案 1 :(得分:0)

实际上,尽管可以这样做,但这种方法是错误的。这种功能在客户端实现得更好。

您应该研究的一件事是Responsive Web Design,它旨在使用正确的语义标记,CSS和JavaScript来解决这些问题。

您是说要在页面加载时根据文档大小(假设您的意思是窗口大小...,因为文档将首先缩放到元素的大小)来使元素合适,但是当用户重新调整屏幕大小时会发生什么?然后它再次进入底池!

我最近不得不使用jQuery解决类似问题,因此您可能需要考虑以下代码段,因为它可以帮助您实现所需的结果。

$(document).ready(function() {
    // Will run when the document is ready.
    resizeElements();
});

$(window).resize(function() {
    // Will run when the window is resized.
    resizeElements();
});

function resizeElements() {
    // Write your code here to adjust the position, height and width of the desired elements
}