一、问题的由来

问题是这样子给出来,今天产品那边跟我说,在a网站跳转到b网站时,让用户有一个选择身份的弹窗。因为公司有两个不同站点,你无论在a或者b网站注册后,都可以随便登录这两个站点,进入之后都会有个人中心。两个站点的目的不大一样,一个是是用来吸粉(a站点),搞活动,一个是公司用来赚钱(b站点)。那么问题来了哦,从a站点的个人中心通过点击链接进入到b站点的个人中心,进入个人中心后就要有一个弹窗,让用户选择身份。

看图,这是在a站点的个人中心,a站点部分用户身份,所以此时俺还只是一个最普通的小用户,通过优雅地点击进入”硬蛋供应链“链接,就进入b站点的个人中心。

此时来了来了,因为你还没有选择你是”警察“或者是”杀手“的身份(其实是创新者或供应商),所以会弹出选择弹窗。

感觉终于把标题说清楚了。对的,我想说的就是从a站点跳转到b站点时,通过url地址所带的一个参数让我轻松又愉快的解决了一个小问题。

二、最开始的版本我的做法是通过点击事件来判断的。

最开始的时候,产品姐姐没有说跳转进入b站点后才弹窗选择身份的弹窗。那么我就使用在b站点的个人中心那里一直用的通过click点击事件来判断是否弹窗。

b站点的个人重点大概这样咯,最为社会最底层的我(普通用户),我可以点击查看的只是”账户信息“,点击其他的栏目都会让我选择身份。好吧,代码可以重用,太奈斯,我就把从a跳转到b也使用这么一个click事件判断,判断这里点击的链接地址是不是等于http://www.baidu.com/my_account  轻松解决??

事情不是这样的,too young too simple~

三、后来产品说体验不好,继续优化。我改成了用url地址来判断。

因为在a站点链接到b站点的个人中心的url地址和个人中心侧板菜单的”账户信息“的url地址一样的。坑爹咯,那么就意味着我每次在b站点的个人中心点击”账户信息“也会弹窗选择身份,但是产品设计师那边的交互这个位置是不要弹窗选择身份的。

那么,只能用最初的那个想法,让a站点过链接过来b站点的个人中心的url地址不一样点,带个参数给他呗,让我程序能判断到他是来自远方的客人,此时要弹窗问候一下。之前没这样做的原因就是我不想动a站点的php代码,因为a站点我一般不做维护。就想能不能在b站点这边做处理。但是不好弄,最后还是修改再a站点那边的链接地址,带个参数http://www.baidu.com/my_account?isA=1

前端js判断代码就像文章给出的第一张图那样。

好愉快的,

if(baseEvn.getUrlString('isA') == 1 && userRole ==4){

……

}

userRole就是用户身份,4就是我,最普通的,还没选择身份的那类人。getUrlString(val)就是一个获取url地址参数的方法咯。

四、写在最后的

其实我能想不要去改php代码就尽量不要去改,这种想法是好的吧,但是如果对于解决问题,更加轻松加愉快的话,那就果断改吧。另外,感觉那个获取url参数的方法挺好用的。又是周三,很快就周三了呀,很快很快就是中秋节,呜呜,我还没有买到票回家,真的要坐大巴的节奏,help~

从a站点跳转到b站点,通过url的参数判断是否让该用户选择身份的更多相关文章

  1. 三十七、小程序页面跳转传参参数值为url时参数丢失

    当参数的值为url的时候,在options中的值没有参数“?”之后字符串被截取.例如:let url="http://baidu.com/?a=1&b=2"wx.navig ...

  2. 小程序页面跳转传参参数值为url时参数时 会出现丢失

    当参数的值为url的时候,  ?号   _  下划线   等等 都会被 截取掉,看不到,  这样在 另一个页面 options中  截取的url就不完全 let url="http://ba ...

  3. 小程序跳转传参参数值为url时参数丢失

    通过先encodeURIComponent,取到值以后再decodeURIComponent,拼接参数正常传递 A页面 switch: function (e) { var aa = 'UNNZVUf ...

  4. 自定义HttpModule,用于未登录用户,不弹出Windows认证窗口,而是跳转回SSO站点

    2012年的一篇随笔记录,可以学习到如何自定义HttpModule,而具体里面针对需求开发的代码,可能未必能让大伙了解到什么,可快速扫描而过. using System; using System.W ...

  5. Linux 如何设置只允许域名访问站点而禁止IP访问站点

    最近在论坛里看到有人问到 Linux 如何设置只允许域名访问站点而禁止IP访问站点的问题,之前自己也用过这个功能,可以防止别人用 IP 地址来访问到自己的网站,下面我就我自己的环境给出解决方法,我用的 ...

  6. C# 创建iis站点以及IIS站点属性,iis不能启动站点

    DontLog = False是否将客户端的请求写入日志文件 2011年04月09日 #region CreateWebsite 新增网站 public string CreateWebSite(st ...

  7. 50套html站点模板,涵盖非常多行业,各种类型html站点,各种行业html站点模板下载

    50套html站点模板,涵盖非常多行业,各种类型html站点.各种行业html站点模板下载 所以模板都在共享文件中面QQ群 139639813 ,快下载吧.

  8. 用jQuery.ajaxWebService请求WebMethod,Ajax处理实现局部刷新;及Jquery传参数,并跳转页面 用post传过长参数

    首先在aspx.cs文件里建一个公开的静态方法,然后加上WebMethod属性. 如: [WebMethod]  public static string GetUserName()   {  //. ...

  9. 移动端访问PC站点时自动跳转至移动站点

    方法一: 百度Site APP的uaredirect.js 实现手机访问,自动跳转 <script src="http://siteapp.baidu.com/static/webap ...

随机推荐

  1. 不实名认证去除新浪云SEA的实名认证提示的方法

    最近在做个人空间,不想搭本地php和数据库,为了省事,在新浪云SEA开了个php应用,挺好用的,现在没什么访问量,基本不收费,特别适合练手. 我的空间是php,由于没有实名验证,每个页面都会出现一个 ...

  2. asp.net中时间差的问题

    asp.net中时间差的问题 在asp中我们可以用datediff来处理,时间的差,相当的不错,可是在asp.net中C#语言中却没有.可是ASP.net给我们提供了一个TimeSpan,我们可以用它 ...

  3. Java调用存储过程时报 The user specified as a definer ('root'@'%') does not exist 解决方法

    Caused by: java.sql.SQLException: The user specified as a definer (''@'') does not exist        at c ...

  4. C# zip压缩

    /**//* * Gary Zhang -- cbcye@live.com * www.cbcye.com * www.quicklearn.cn * cbcye.cnblogs.com */ usi ...

  5. 结构体dtuple_t

    /* SQL data tuple struct */ typedef struct dtuple_struct dtuple_t; /** Structure for an SQL data tup ...

  6. Android 线程优先级

    对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程 ...

  7. android 后台附件下载

    在service中通过在oncreat()中开启一个线程,轮训ArrayList<AttachmentTask> 我这个附件下载的任务list ,ArrayList<Attachme ...

  8. Nginx实现七层负载均衡配置指导

    本文描述了如何使用Nginx实现在应用层实现7层负载均衡功能,Nginx支持虚拟主机,可以按照轮询,IP哈希,URL哈希,权重方式对后端服务器做负载均衡,还支持后端服务器健康检查功能.废话不多说,详细 ...

  9. 惊人事实 z

  10. How to change the property of a control from a flowlayoutpanel?

    Well, the easiest way would be to retain an explicit reference to the buttons you're adding. Otherwi ...