[请教]如何让手机和电脑访问同一网址进入不同页面?

wikiexe 2009-08-18 04:20:44
请教,如何让手机和电脑访问同一网址进入不同页面?
这里要求不仅仅像打印页面一样只是格式和布局不一样,而是要求网页内容也不一样
最好是能够实现页面的跳转,跳转到不同的页面
哪位大侠知道能指点一下吗?
...全文
6405 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
nokia_panda 2012-02-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ximengchang 的回复:]

个人想法应该是判断ip,手机的IP好像应该是10.开头的,电脑的不是,我现在wap网站判断是否手机访问就是这样做的
[/Quote]
WIFI上网呢?
ZhangYaoxing 2009-08-27
  • 打赏
  • 举报
回复
好吧,我不肯定这样的写法被多少浏览器支持(据查到的资料来看貌似并不乐观),就算所有浏览器都支持,那同时下载两套HTML还是避免不了吧?这样真的是一个很差的实现方式,个人觉得这一条就足以否决这个方案了。
wikiexe 2009-08-26
  • 打赏
  • 举报
回复
使用CSS可以采用另外一种方式来判断,通过这样一个语句:
<link rel="stylesheet" type="text/css" href="*.css" media="all"/>
可以通过控制media的来控制在不同的介质中显示不同的页面:all, screen, print, tv, handheld,这个判断是交给客户端来实现的,如果客户端支持CSS的这句语句,应该就可以做出正确选择的。
ZhangYaoxing 2009-08-21
  • 打赏
  • 举报
回复
这样的话不管是PC还是手机,结果都会下到两套不同的HTML,然后选择性的显示。首先这个思路是不对的,应该尽量去避免下载不必要的东西到客户端,特别是对于手机这种小内存的设备。然后,这样还是避免不了区分UserAgent的步骤啊,因为你还是要根据浏览器的类型来选择显示的内容。不同的只是这样判断UserAgent的步骤只能放到客户端,所以上面的问题又来了,关闭了JS怎么办?
所以用CSS的思路来做只是徒增复杂性,没有什么特别的好处。还是建议你在服务器端用UserAgent判断。
wikiexe 2009-08-20
  • 打赏
  • 举报
回复
To ZhangYaoxing:
谢谢你的回答!
关于CSS,我的打算是设计2套完全不同的界面,只是把它们放在一个页面上,在PC上把手机部分的desplay值设置为none,在手机上把PC部分的display值设置为none。不知道这样是否可行?至于主页内容过于庞大,这个是第二步考虑的问题,可以通过对代码进行优化来简化。
关于框架,我测试过了,的确不行,nokia的手机就是支持框架的,只是有时候显示得比较难看而已。。

这个网站目前的确只打算支持HTTP,WAP可能是今后再考虑的事情。
ZhangYaoxing 2009-08-19
  • 打赏
  • 举报
回复
CSS那个:完全用CSS实现个人觉得不太现实,因为PC主页肯定比手机主页复杂,包含更多的内容。CSS只是控制显示样式。所以顶多能把一些元素隐藏掉。这里有两个问题,一个是如果用于PC的主页比较复杂,那CSS隐藏部分内容也解决不了问题,还是会因为主页内容过于庞大而造成手机运行缓慢。二是PC主页和手机主页一般来说而已会有很大的不同,只用不同的CSS想达到目标应该说比较困难。
框架:不建议,原因你自己也说了,期望手机浏览器都不支持框架才行。关于手机浏览器现在是不是支持框架我也不太清楚,不过发展趋势来看,就算现在不支持,迟早也会支持的。

还有你提到的那个网站,相当一部分手机的浏览器是只支持WAP的,如果你打算还要支持WAP的话,那就要判断更多了。我开始以为你只想支持那些有HTTP浏览器的手机
wikiexe 2009-08-19
  • 打赏
  • 举报
回复
我还想到两个办法,大家能帮忙看看可行吗?
方法一:在CSS中有这样一种方法来区分正常页面或打印页面:
<link rel="stylesheet" type="text/css" href="*.css" media="all"/>
可以通过控制media的来控制在不同的介质中显示不同的页面:all, screen, print, tv, handheld
我如果做2个重叠的页面,通过media的值选择不同的css风格来控制显示不同页面,当为handheld显示手机的页面,当为screen时显示pc的页面

方法二:利用框架的特点:
主页利用框架来实现,在框架集文档中来实现手机浏览器看到的页面,由于在支持框架的浏览器不会显示框架集文档中的手机页面,而如果手机不支持框架集,则会显示该页面。这个方法的前提是,期望手机浏览器都不支持框架。
wikiexe 2009-08-19
  • 打赏
  • 举报
回复
谢谢ZhangYaoxing,你解释得很清楚,我觉得可以去试试。刚才在网上找到一个比较全的列表,看起来让我非常抓狂,有兴趣的朋友可以去看看:http://www.zytrax.com/tech/web/mobile_ids.html 貌似要总结这些规则是个不轻的体力活。。。
浴火_凤凰 2009-08-19
  • 打赏
  • 举报
回复
判断浏览器的userAgent来实现。根据不同的来展示不同的页面
ZhangYaoxing 2009-08-19
  • 打赏
  • 举报
回复
UserAgent服务器端是可以取到的,这个工作应该在服务器做,JS做的话一是会要等JS下载完成才会跳转,二是像上面提到的,人家禁用JS你就没戏了。
至于对浏览器的覆盖问题,覆盖不完全是很正常的。因为你不可能保证你的网站在任何未知和已知的浏览器上都正常运行,去覆盖那些你不知道的浏览器本身就是没有意义的——你都没测试过怎么知道你的网站能在那些浏览器下正常工作?那就是在碰运气了吧。不过因为流行的智能手机操作系统就那么几种,所以你覆盖了那几种几乎就覆盖了全部了。
用于不同系统的Mobile Opera
用于Windows Mobile的IE
用于iPhone的Mobile Safari
用于Black Berry的……我也不知道
关于这些浏览器的UserAgent可以自己查查,不过个人经验来说一般手机浏览器的UserAgent都会包含mobile字样。所以不妨在服务器端设置这样几条规则:
首先分别判断上面几种浏览器的UserAgent,转到相应的网站(如果你打算为不同浏览器做不同网站的话。如果不是,则转到统一的手机网站)
然后如果UserAgent包含mobile,却不是以上的浏览器,则转到一个默认的手机网站(这就是在碰运气了,因为默认网站不一定会在这个未知浏览器下工作)。
如果以上都不是,那么当作是PC浏览器,转到PC浏览器网站。当然你还可以根据不同的PC浏览器做不同的网站。不过相信没有多少人这么吃饱了撑的吧。
服务器上怎么获得UserAgent就要看你用什么技术了。
wikiexe 2009-08-19
  • 打赏
  • 举报
回复
顶一个,哪位大侠帮忙看看
jol_boy 2009-08-18
  • 打赏
  • 举报
回复
呵呵,除非搞个行业标准,手机上的网页浏览器,都有一个特殊的标志mobile,这样就能识别了~~不然,不管是判断IP还是判断终端都不精确!
code_killer 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 robin521 的回复:]
引用 1 楼 jol_boy 的回复:
在客户端检测现在是什么浏览器,是手机还是PC,然后页面跳转,这是我的想法,没条件去试:)

正解,JS有这个能力办到!
[/Quote]


可是,不是所有的手机用户都开启JS功能啊
浴火涅磐 2009-08-18
  • 打赏
  • 举报
回复
隐藏不访问的区域,调用哪个区域就显示那个就可以了,可以共用一个页面,也可以用action和include
robin521 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jol_boy 的回复:]
在客户端检测现在是什么浏览器,是手机还是PC,然后页面跳转,这是我的想法,没条件去试:)
[/Quote]
正解,JS有这个能力办到!
wikiexe 2009-08-18
  • 打赏
  • 举报
回复
这里有这个问题,我这个网站可能会在北美或者欧洲用到,那么我如何能保证我的判断能覆盖所有的浏览器类型?
wikiexe 2009-08-18
  • 打赏
  • 举报
回复
To jol_boy:
那如果碰到不认识的浏览器怎么判断呢?还有,会不会有些浏览器的手机版本和PC版本的关键字是一样的?
我注意到CSS里面有一个link的media,可以为screen, print 或者 handheld,但是这个只能用来区分不同的CSS风格,功能有限。我是期望能有一个类似的功能可以分辨终端访问设备。

To ximengchang:
Wap网站可以,但是我的是WWW网站,手机有可能通过WI-FI接入来上网,所以这种方法不适合我。
wikiexe 2009-08-18
  • 打赏
  • 举报
回复
To jol_boy:
那如果碰到不认识的浏览器怎么判断呢?还有,会不会有些浏览器的手机版本和PC版本的关键字是一样的?
我注意到CSS里面有一个link的media,可以为screen, print 或者 handheld,但是这个只能用来区分不同的CSS风格,功能有限。我是期望能有一个类似的功能可以分辨终端访问设备。

To ximengchang:
Wap网站可以,但是我的是WWW网站,手机有可能通过WI-FI接入来上网,所以这种方法不适合我。
  • 打赏
  • 举报
回复
根据用户代理判断是比较好的办法。
利用IP是不行的。因为有些用户使用cmwap上面的时候,你可能拿不到ip地址。
而且也没有任何技术文档说明10开始的是移动的ip.
skyakira 2009-08-18
  • 打赏
  • 举报
回复
应该可以判断浏览器的userAgent来实现。根据不同的来展示不同的页面,具体的UserAgent。你找找就行了。
满地都是的。
加载更多回复(2)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧