项目中有个很简单的需求,5个页面,手机端分享出去的只要不是首页,打开默认跳转首页,页面间正常跳转不影响。本来有两种方法实现,1、服务端控制,2、客户端跳转
由于是静态页面,只能由客户端控制。用referrer是否为空控制跳转,但是测试中发现,某些浏览器坑了。做了个小测试,例如有两个页面如下:
test1.html:
<a href="test2.html">跳转</a>
test2.html:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script> document.write(document.referrer); </script> </body> </html>
修改一下test1.html为表单提交跳转,如下:
<form action="refer.php" class="personinformation-submit" method="post"> <section class="testSubmit" id="messageSubmit"> <input type="submit" class="recruitGO" id="messageGO" value="提交"> </section> </form>
<?php header('location: http://bbs.laozhou.net.cn/buglist_test/test2.html');
结果坑出来了,所有浏览器正常,唯独qq内核浏览器,包括qq浏览器和微信内置,test2.html显示空白。意味着通过服务端控制跳转后referrer在qq内核浏览器中为空,而普通页面间跳转referrer所有浏览器正常。
qq浏览器也算奇葩了。这里做移动前端开发的可能会碰到这个坑,分享出来,交流一下。