关于返回按钮的事情

在微信的项目涉及到多个不同的项目间跳转那么头部的返回按钮怎么办呢?

在项目之间跳转还有在微信菜单进入页面时我们用了一个中转页进行参数处理和页面跳转判断

目前要用到code,userId等从后端写好的带参数的url到前端获取然后去调用后端的一个校验code和获取userID如果有userID就请求跳转接口

如果没有就跳转到登录页注册绑定

然后跳转到另外一个项目的那么我们得用到window.location.replace跳转过去

用了window.location.replace后我们就没有window.history了

那么问题来了产品要求跳过去的项目得保留返回按钮

那么我们可以window.history.length的多少判断有没有返回的内容咯(不同浏览器值不一样chrome没有历史内容的时候是1)

理论上当window.history.length小于没历史内容条数的时候可以跳到别的一些自己定义的界面

但是你要在跳到的这个页面A里面点了里面的链接然后再返回页面A那么他的window.history.length会增加的那么判断就不准确了我们window.history.back()没有反应了

这时候应该要用document.referrer === ‘‘来判断他有没来源

window.history.length>1 && document.referrer !== ‘‘?window.history.back():(typeof(WeixinJSBridge)=="undefined" ? window.close() : WeixinJSBridge.call(‘closeWindow‘));像我写的是这样的

document.referrer有一些兼容性问题的不过用在H5下应该还好具体看如下

操作 IE6 IE7 IE8 IE9 Firefox Chrome Opera Safari
直接在地址栏输入URL “” “” “” “” “” “” “” “”
从书签访问URL “” “” “” “” “” “” “” “”
从页面A点击超链接,跳转到页面B(target=”_self”)
从页面A点击超链接,跳转到页面B(target=”_blank”)
从页面A右键单击超链接,在新标签页中打开页面B - “”
从页面A右键单击超链接,在新窗口中打开页面B “”
拖动链接到地址栏 “” 无法拖动 无法拖动 “” “” “” “” “”
拖动链接到标签栏 - “” “” “” “” “” “” “”
使用浏览器的前进、后退按钮
JS 修改 location.href “” “” “”
JS 使用 window.open “” “” “” “”
服务器重定向(302跳转) 定向之前的页面 定向之前的页面 定向之前的页面 定向之前的页面 定向之前的页面 定向之前的页面 定向之前的页面 定向之前的页面
页面 Meta Refresh “” “” “” “” “” 转向页 转向页 转向页

上表中的“√”表示能正常取到 referrer,”” 表示 referrer 为空。

除了 IE 外,其它浏览器都是目前官网上能下载到的最新版本,其中 Safari 同时测试了 Windows 版和 Mac 版,结论一样。

另外还有一些情况未做测试,例如点击 Flash 跳转时各浏览器下能否保持 referrer 等。

上表中大部分情况是符合预期的,不过似乎也有几处需要注意的:

1、在 Safari 中,右键打开链接会丢失 referrer;
2、在 IE 中,修改 location.href 或使用 window.open 打开页面会丢失 referrer(IE 9 有一点例外,使用 location.href 跳转不会丢失 referrer);
3、使用 meta 跳转时,IE / Firefox 下会丢失 referrer。

最后,一个简单的结论是:如果你需要通过 document.referrer 采集页面访问来源,最好不要使用 JS 跳转或打开新窗口,也不要使用 meta 跳转。

上面的数据是

参考网站:http://www.jb51.net/article/52349.htm得出的我就搬过来记录一下

时间: 2024-10-31 11:15:12

关于返回按钮的事情的相关文章

截获导航控制器系统返回按钮的点击pop及右滑pop事件

前几天看了@栾小布的一篇文章:Custom backBarButtonItem,在跟着做的时候我又顺便扩展了一些,写此文章的目的是为了总结一下自己所写的东西,方便以后翻看容易,同时也是自己入行iOS一年时间,希望写点东西练练手,还有希望可以分享给大家,希望大家一同讨论,提出宝贵意见以及更简单的实现.总体效果如下: 同时受@J_雨的轻松学习之——IOS利用Runtime自定义控制器POP手势动画一文影响,所以我们将用两种方法实现. 实现思路 每一个navigationController都自带有一

iOS7 修改导航系统默认返回按钮文字及颜色

//iOS7 修改系统默认返回按钮文字及颜色 UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarButtonItem = item; [[UINavigationBar appearance] setTintColor:[UIColor

自定义NavgationBar返回按钮

iOS  上UINavigationController视图压栈形式,可以在当前视图无限制push许多视图,然而一些会觉得自带的push按钮不够美观,而且当上的上一个页面title很长的时候,那个返回按钮就很长,怎样定义一个自己返回按钮呢?像第三幅图片一样...    需要push的视图里面定义一个事件 [cpp] view plaincopy - (IBAction)pushVC:(id)sender { NavViewController *navVC = (NavViewControlle

IOS 改变Navigation的返回按钮

两个办法: 1, 手动为每一个UIViewController添加navigationItem的leftButton的设置代码 2,为UINavigationController实现delegate,在pop和push的时候改变当前和上一页的navigationItem.title 以下是封装的一些基础方法,供参考: + (void) navigationItem:(UINavigationItem*)navigationItem setTitle:(NSString*)title; + (vo

微信浏览器 返回按钮二次返回

在做微信开发的时候,当通过微信的推送消息(页面1)打开网页后(进入页面2),此时,再次打击链接打开网页(页面3).当点击安卓手机的返回按钮时,可以正常回退到"页面2",但是当点击微信左上角的返回按钮时,会直接回退到"页面1". 起初感觉是加载浏览器插件的原因,思考了好久不得结果.后来发现"招商银行信用卡中心"官方微信,并不存在上述问题.观察招商银行的官方微信发现,页面2的title是微信定义的title,但是页面3的title变成了用户自定义的t

武汉兼职女:点击浏览器或者手机返回按钮,刷新历史页面解决方案

武汉兼职女:点击浏览器或者手机返回按钮,刷新历史页面解决方案 我前面文章中写了返回上一页并刷新页面 的方式.这个是我们点击某个按钮,来进行操作的.但是假如我们不是点击某个按钮,而是直接点击手机下面的返回按钮或者浏览器自带返回按钮,如何刷新之前的历史页面呢? 应用场景假如我们有如下页面列表信息页面 enter image description here 点击进入详情页面,在详情页面修改了数据. enter image description here 通过历史返回,再返回到列表信息页面,因为列表

iOS不得姐项目--appearance的妙用,再一次设置导航栏返回按钮,导航栏左右按钮的封装(巧用分类)

一.UI_APPEARANCE_SELECTOR 彩票项目中appearance的用法一直没有搞明白,这次通过第二个项目中老师的讲解,更深一层次的了解到了很多关于appearance的作用以及使用方法. 在iOS属性后有UI_APPEARANCE_SELECTOR标志都可以一次性统一设置.这种情况还有很多.比如说统一设置UITabbarItem的文字颜色 通过appearance来同意设置属性最好是在+ (void)initialize;方法里面. 项目中设置导航栏背景图片的代码: 项目中设置T

如何设置自定义导航控制器全局返回按钮 --- ios

怎么样可以一次性把导航控制器中的返回键全都自定义. 思路: 我们可以在push的时候来设置这个自定义按钮,push有一个方法 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{} 在这个方法中viewController是push的对象 但是要判断这个viewController是不是根控制器 - (void)pushViewController:(UIViewControl

CSS3模拟实现iphone返回按钮效果

CSS3模拟实现iphone返回按钮效果:大家知道现在CSS3可以实现各种漂亮的效果,以前只有图片可以实现的效果,现在CSS3实现起来难度也不是太高.下面分享一段使用CSS3实现的iphone返回按钮的效果,其实这种CSS3代码根本就不用分析,只要给出代码实例,自己就完全可以看明白,当然你要首先知道各个属性的作用是什么,代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q