我正在使用 ASP.NET 和 C#。我可以使用 javascript 来获取文档高度。
var h = document.documentElement.offsetHeight;
现在我在页面加载期间需要这个值。但是 javascript 将在页面加载后开始执行。所以现在我需要使用服务器端代码(C#)来获取它。
可能吗?
编辑:
在页面加载中,我计划根据文档高度设置所有标签的高度。这样页面将适合所有分辨率。
您无法使用服务器端代码获取此值,因为根据定义,它是服务器端的。
但是,您可以使用 JavaScript 通过 AJAX 将值传递回 ASP.NET 脚本,并在此时执行您需要采取的任何操作。当然,这意味着您将无法为不同的屏幕尺寸提供不同的内容加载,但这完全取决于您的意图。
由于您在页面加载时需要它,因此一种非常非常巧妙的方法是检测浏览器高度然后重定向,例如将其作为查询字符串值传递,您可以直接在 PageLoad 中使用。我的具体意思是,使用 JavaScript 来检测这个 QS 值(例如?ph=768
),如果它不存在,则将页面重定向到自身,附加在?ph=768
. 这样您就可以使用它来获取文档加载时的页面高度。
不过,正如@J.Steen 在评论中提到的那样,定义您的意图可能会更好。
实际上,虽然可以做到这一点,但方法是错误的。这种功能在客户端会更好地实现。
您应该研究的一件事是响应式 Web 设计,它旨在使用正确的语义标记、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
}