一、问题的由来

问题是这样子给出来,今天产品那边跟我说,在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. 由abcd四个字符取5个作允许重复的排列,要求a出现次数不超过2次,但不能不出现;b不超过1个;c不超过3个;d出现的次数为偶数。求满足以上条件的排列数。

    一.我的解法       由于没复习,我在想一般的方法,那就是d取0.2.4,然后分步计算,得到225这个错误答案. 二.指数型母函数       设满足以上条件取个排列的排列数为,的指数型母函数为 ...

  2. 关于对js的this的几点理解

    四种不同模式小调用的指向 1.函数调用模式的时候,this指向window 2.方法调用模式的时候,this指向方法所在的对象 3.构造函数模式的时候,this指向新生成的实例 4.apply/cal ...

  3. CSS使块半透明方法,兼容IE6

    前言 今天LOL玩机器人玩得真心不爽,实在崩溃,还是逛博客园比较爽些,记录自己的成长!说句实话我在编程方面确实是个菜鸟,菜到一种超神的地步,没一样自己特擅长的,悲催...... 废话少说,进入正题,H ...

  4. php访问类静态属性

    在类的外部,如果要使用到类的静态变量,则可以使用 :: 操作符. <?php class A { static $x = 10; function test() { echo self::$x; ...

  5. [二分匹配]URAL1721Two Sides of the Same Coin

    题意:给n个人,每个人都有3个参数,分别是名字,能做的事(a:statements  b:testdate  a.b都可以:anything),Rank 要求:一个人只能做一个事件,要两个人Rank相 ...

  6. Linux内核spin_lock与spin_lock_irq分析

    http://blog.csdn.net/zhanglei4214/article/details/6837697

  7. 使用Code first 进行更新数据库结构(数据迁移)

    CodeFirst 背景  code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会 ...

  8. javaweb学习总结(三十七)——获得MySQL数据库自动生成的主键

    测试脚本如下: 1 create table test1 2 ( 3 id int primary key auto_increment, 4 name varchar(20) 5 ); 测试代码: ...

  9. ANDROID_MARS学习笔记_S02_004_ExpandableListActivity

    1.main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...

  10. Mysql表的七种引擎类型,InnoDB和MyISAM引擎对比区别总结

    InnoDB和MyISAM区别总结 我用MySQL的时候用的是Navicat for MySQL(Navicat for mysql v9.0.15注册码生成器)操作库.表操作的,默认的表就是Inno ...