如何在asp.net 服务器端获取屏幕分辨率
最近遇到一个项目,需要根据不用的终端,显示不同的内容,因此需要一种办法可以在asp.net后台获取到分辨率,然后进行处理!请注意,是要在服务器端获取,js端如何获取我知道,只是业务限制,走不通!请大家帮帮忙!小弟分不多,能帮忙解决的给100 --------------------编程问答--------------------
--------------------编程问答-------------------- 楼上的,你先自己试试能不能出来,你这样直接拷贝黏贴的,哎~~~ --------------------编程问答-------------------- 客户端IP:Page.Request.UserHostAddress
客户端IP:Page.Request.UserHostAddress
用户信息:Page.User;
服务器电脑名称:Page.Server.MachineName
当前用户电脑名称: System.Net.Dns.GetHostName()
当前电脑名: System.Environment.MachineName
当前电脑所属网域: System.Environment.UserDomainName
当前电脑用户: System.Environment.UserName
浏览器类型:Request.Browser.Browser
浏览器标识:Request.Browser.Id
浏览器版本号:Request.Browser.Version
浏览器是不是测试版本:Request.Browser.Beta
浏览器的分辨率(像素):Request["width"].ToString() + "*" + Request["height"].ToString();//1280/1024
客户端的操作系统:Request.Browser.Platform
是不是win16系统:Request.Browser.Win16
是不是win32系统:Request.Browser.Win32
用户信息:Page.User;
服务器电脑名称:Page.Server.MachineName
当前用户电脑名称: System.Net.Dns.GetHostName()
当前电脑名: System.Environment.MachineName
当前电脑所属网域: System.Environment.UserDomainName
当前电脑用户: System.Environment.UserName
浏览器类型:Request.Browser.Browser
浏览器标识:Request.Browser.Id
浏览器版本号:Request.Browser.Version
浏览器是不是测试版本:Request.Browser.Beta
浏览器的分辨率(像素):Request["width"].ToString() + "*" + Request["height"].ToString();//1280/1024
客户端的操作系统:Request.Browser.Platform
是不是win16系统:Request.Browser.Win16
是不是win32系统:Request.Browser.Win32 --------------------编程问答-------------------- 先说明,胡乱拷贝黏贴的不给分,只给能解决问题的 --------------------编程问答-------------------- 你js会获取在把你这个js获取到的值放到某个隐藏控件里面在在后来来取这个值不就搞定了! --------------------编程问答--------------------
问题是,放了以后,在当前页面不操作的情况下是获取不到的,除非我点个按钮直接的,ok,那没有问题,如果是页面加载的时候,是没有办法取出来这个数值的 --------------------编程问答-------------------- System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height --------------------编程问答--------------------
你这个是 winform的,我找的是webform的 --------------------编程问答-------------------- 后台获得服务器的分辨率?怎么听着这么奇怪呢。
获得前台的分辨率?只能使用js等前端的技术。 --------------------编程问答-------------------- 浏览器的分辨率(像素):Request["width"].ToString() + "*" + Request["height"].ToString(); --------------------编程问答-------------------- 帮顶起! --------------------编程问答-------------------- 我的意思是说我需要再page_load里面获取到这个分辨率,通过js方式得到没有问题,但是有没有什么办法能让我在page_load里面调用到这个数值 --------------------编程问答-------------------- <input type="hidden" name="ScreenPixel" id="ScreenPixel" runat="server" />
<script type="text/javascript">
document.getElementById("<%=ScreenPixel.ClientID%>").value = screen.width + "×" + screen.height;
</script>
在page_load是可以取得ScreenPixel.Value得值,你又不是在Init下取。 --------------------编程问答--------------------
看上去靠谱,我去试下,如果成功,分是你的 --------------------编程问答-------------------- 给你回答问题,不是冲着你所谓的20分。
你给我如何,不给我又如何?
要刷分数早就刷起来了。
CSDN的分数能当钱用?一部分人连 封装继承多态都不懂就去学什么MVC。
当程序员你不会语法是你懒,你没有思想,你有想法 那还是你懒? --------------------编程问答-------------------- 楼上的,还是有问题,请看我的代码
前台:
<form id="form1" runat="server">
<div>
<input type="hidden" id="ScreenWidthInput" runat="server" />
<input type="hidden" id="ScreenHeightInput" runat="server" />
</div>
</form>
<script>
document.getElementById("<%=ScreenWidthInput.ClientID%>").value=window.screen.width;
document.getElementById("<%=ScreenHeightInput.ClientID%>").value=window.screen.height;
</script>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
string wp =ScreenWidthInput.Value.ToString();
string hp = ScreenHeightInput.Value.ToString();
Response.Write(wp + "," + hp);
}
调试结果:
后台的pageload先执行,然后才走的是前台的javascript,所以后台没有办法取到值的,不知道怎么解决? --------------------编程问答-------------------- 试一下在body onload加载js。 --------------------编程问答-------------------- JQuery获取分辨率
$(function () {
var hff = screen.height;
var wff = screen.width;
alert("分辨率是:"+wff+"*"+hff);
});
--------------------编程问答--------------------
应该也不行的,因为body onload的时候,input应该还没有呢,直接执行这个js脚本应该是找不到对应的控件的 --------------------编程问答--------------------
jquery这种方式就更不行了,你这种方法都是页面全加载完成后才会执行的,我啥都得不到,请注意,我需要的是在后台获取到,如果只是在前台获取,我就不来问了!
--------------------编程问答-------------------- 还真不会 顶帖…… --------------------编程问答-------------------- $(function(){
//在这里面获取客户端的分辨率,存到hidden控件中
});
然后再在page_load里获取hidden中的值
要知道是先进行页面DOM加载,然后再Page_load的 --------------------编程问答-------------------- 页面只要一F5,他就会执行Page_Load。
而$(function(){}) 是dom树构建差不多的时候才执行。你说你怎么可能用JS把得到的值让后台获取到?
只有加一个点击事件,人为的传过去
$(function () {
$("#BtnList0").click(function () {
var hff = screen.height;
var wff = screen.width;
$.ajax({
type: "post",
url: "SelectXmlByJq.aspx?W=" + wff + "&H=" + hff + "",
dataType: "html",
success: function () {
}
});
});
});
--------------------编程问答--------------------
if (Request.QueryString["W"] != null)
{
string Fenb = Request.QueryString["W"].ToString() + "*" + Request.QueryString["H"].ToString();
}
你确定吗? --------------------编程问答-------------------- 只要js能得到,何愁什么后台得不到 --------------------编程问答-------------------- 首先,这位小盆友,你的分大家都不在乎,OK?
只是本着能帮你的角度而来。。。
别拿你的分来吆五喝六,懂?因为CSDN大虾还是蛮多的。
其次,给你解决方法:
.NET后台获取前台分辨率有点过分,用JS来获取:
参考方法
另外的思路:
<script language=JavaScript>
window.location.href = "vickey.asp?Referer= <%=refer%> &Width= "+escape(screen.width)+ "&Height= "+escape(screen.height);
</script>
直接先用一个空白页获取分辨率,然后作为参数跳转到你的页面。推荐这个。
--------------------编程问答-------------------- ding
ding --------------------编程问答--------------------
$(function () {
if (window.location.href != "http://localhost:56232/Web/SelectXmlByJq.aspx") {
return;
} else {
var hff = screen.height;
var wff = screen.width;
$.ajax({
type: "post",
url: "SelectXmlByJq.aspx?W=" + wff + "&H=" + hff + "",
dataType: "html",
success: function () {
//window.loaction.href = "SelectXmlByJq.aspx";
}
});
}
});
--------------------编程问答--------------------
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["W"] != null)
{
string Wff = Request.QueryString["W"].ToString();
string Hff = Request.QueryString["H"].ToString();
if (Wff == "1440"&& Hff=="900")
{
}
}
}
好人当的过头了 --------------------编程问答--------------------
此话和解?都是过来人。 --------------------编程问答-------------------- 哎,看来是木有好的解决方法了!
--------------------编程问答-------------------- 给你个思路.
在你的首页或者登录页,js获取下分辨率然后存入session其他页面就可以直接调用session了. --------------------编程问答-------------------- 很简单呀。用COOKIE
1、首页加脚本
var str = "pix" + "=" + escape(screen.width+"_"+screen.height);
document.cookie = str;
2、C#
string[] pix = Page.Request.Cookies["pix"].Value.Split('_');
//pix[0]:宽
//pix[1]:高 --------------------编程问答-------------------- 很简单呀。用COOKIE
1、首页加脚本
var str = "pix" + "=" + escape(screen.width+"_"+screen.height);
document.cookie = str;
2、C#
string[] pix = Page.Request.Cookies["pix"].Value.Split('_');
//pix[0]:宽
//pix[1]:高 --------------------编程问答-------------------- --------------------编程问答-------------------- 先把这些东西存在cookies里面然后跳入到你的页面在后台获取 --------------------编程问答-------------------- http://www.wzsky.net/html/article/asp/asp2/111609.html --------------------编程问答-------------------- 研究一下:http请求头、以及 http请求头的 UA-Pixels 参数
但愿有所收益 --------------------编程问答-------------------- 真的好高深莫测啊 --------------------编程问答-------------------- 易做图,2012年的帖子都翻出来了 --------------------编程问答--------------------
问题是,放了以后,在当前页面不操作的情况下是获取不到的,除非我点个按钮直接的,ok,那没有问题,如果是页面加载的时候,是没有办法取出来这个数值的
获取完了用JS执行个Postback不行? __dopostback("controlid") --------------------编程问答-------------------- 我擦 这是 坟吗 --------------------编程问答-------------------- <script language="javascript">
x=screen.width
y=screen.height
alert("分辨率为"+x+"+"+y);
</script> --------------------编程问答-------------------- 做两次跳转就可以了,首是index.html,什么都不干,只负责用js获取分辨率,浏览器情况,通过get方式跳转给index.aspx,location.href='index.aspx?swidth='+ screen.width +"&sheight="+ screen.height;
然后index.aspx再去判断和加载
补充:.NET技术 , ASP.NET