我正在使用ASP.NET和C#。我可以使用javascript来获取文档高度。
var h = document.documentElement.offsetHeight;
现在我在页面加载期间需要这个值。但是javascript将在pageload之后开始逐渐消失。所以现在我需要使用服务器端代码(C#)来获取它。
有可能吗?
编辑:
在页面加载中,我计划根据文档高度设置所有标记的高度。 这样页面就适合所有分辨率。
答案 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
}