<html>
<head>
<script language=javascript>
<!--
function mhref() {
if (screen.width == 1024) location.href = "htm2.htm";
else if (screen.width == 800) location.href = "htm1.htm";
else return(false);
}
//-->
</script>
</head>
<body onload="mhref();">
</body>
</html>
或者css方式(感谢 miracle(新一代的开山怪) )
1、制作一组css文件,分被用于在不同分辨率下的屏幕布局设置
2、根据css文件,设计页面布局
2、在页面加载过程中取得屏幕分辨率(上面已经贴了代码了),然后根据分辨率,重新设定页面元素应该应用的css class。
这个过程中完全不需要服务器代码参与,没有post-back。
另外,要将最佳分辨率下的css模板设置为默认,这样的话可以大大减少重新应用style的可能性。
使用css不失为一个办法,就类似asp.net的theme功能,这样做也会有困难:
如何根据分辨率加载不能的css文件呢?如果一个网站有非常多的页面时,每个文件都需要加入相应的分辨率判定和css引导的javascript
如果在服务器端采用ihttphandler或者使用自定义控件,在客户端浏览文件前做出处理,然后由iis自动处理岂不更好?
以下是我昨晚探索出来的结果,仍需要大力完善,欢迎大家继续探讨。
1、首先按照本贴开头的方法,建立一个getscreen.aspx取得客户端分辨率并将之赋予session["screenresolution"],同时为了自动转向
在本贴开头所示代码中加入以下关键代码:
string w=request.form["widthpixel"];//得到屏幕分辨率x
string h=request.form["heightpixel"];//得到屏幕分辨率y
session["screenresolution"]=w+"*"+h;//赋值给session
//转向(更多相关代码见下)
if(session["urlreferrer"]!=null)
{
response.redirect(session["urlreferrer"].tostring());
}
2、在global.asax中:
<script runat="server" language="c#">
public static string strurl;//用于取得用户刚进入时的页面链接
protected void application_beginrequest(object sender,eventargs e)
{
strurl=request.rawurl.tostring();
}
protected void application_endrequest(object sender, eventargs e)
{
}
protected void application_start(object sender, eventargs e)
{
}
protected void session_start(object sender, eventargs e)
{
if (session["screenresolution"] == null)
{
response.redirect("/getscreen.aspx"); //如果未取得客户端浏览器分辨率,则定向到getscreen.aspx,获取之。
}
session["urlreferrer"] = strurl;//将最初请求页面放在session中,以便在第1条所示代码中重定向
}
protected void session_end(object sender, eventargs e)
{
}
</script>
3、在需要做分辨率处理的页面中:
<script language="c#" runat="server">
private string screenwidth;
void page_load(object sender,eventargs e)
{
if(session["screenresolution"]!=null)
{
screenwidth=session["screenresolution"].tostring().split(*)[0].tostring();
}
}
</script>
这里在<body>区内作示例:
<body bgcolor="#0000ff" background="mypicture<%=screenwidth%>.gif" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
优点:一次检测,多次使用。
缺点:需要客户端cookie的支持,因为使用了session.
------------------------------------------
备注:
------------------------------------------
在上述示例中可以更简化一下,那就是:
在第1条中:
设置session["screenresolutionx"]和session["screenresolutiony"]:
session["screenresolutionx"]=request.form["widthpixel"];//得到屏幕分辨率x并赋值给session
session["screenresolutiony"]=request.form["heightpixel"];//得到屏幕分辨率y并赋值给session
在第3条中直接在<body>区内使用:
<body bgcolor="#0000ff" background="mypicture<%=session["screenresolutionx"].tostring()%>.gif" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
另外:检测分辨率的代码可以更简化一些:
//getscreen.aspx(注:未做仔细调试)
<script runat="server" language="c#">
public void page_load(object sender, eventargs e)
{
if (request.querystring["action"] != null)
{
session["screenresolutionx"] = request.querystring["resx"].tostring();
session["screenresolutiony"] = request.querystring["resy"].tostring();
session["screenresolutiond"] = request.querystring["resd"].tostring();
if(session["urlreferrer"]!=null)
{
response.redirect(session["urlreferrer"].tostring());
}
}
}
</script>
<html><body>
<script language="javascript">
res = "&resx="+screen.width+"&resy="+screen.height+"&resd="+screen.colordepth;
top.location.href="getscreen.aspx?action=set"+res;
</script>
</body></html>
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




