一、问题的由来

问题是这样子给出来,今天产品那边跟我说,在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. [状压dp]POJ2686 Traveling by Stagecoach

    题意: m个城市, n张车票, 每张车票$t_i$匹马, 每张车票可以沿某条道路到相邻城市, 花费是路的长度除以马的数量. 求a到b的最小花费, 不能到达输出Impossible $1\le n\le ...

  2. linux 匹配查询列表中包含某一特殊字符的所有行中的某一列

    命令: ll | grep sh | awk '{print $9}' 解析: 其中,匹配列的命令为awk '{print $n}',$n为匹配的第几列.

  3. Structs 原理图

    Struts开源架构很好的实现了MVC模式,MVC即Model-View-Controller的缩写,是一种常用的设计模式.MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化.MV ...

  4. spring cloud官方文档提到的服务开发的12项要素。

    I. Codebase 从一个代码库部署到多个环境. II. Dependencies 使用显式的声明隔离依赖,即模块单独运行,并可以显式管理依赖. III. Config 在系统外部存储配置信息. ...

  5. 正确使用c语言中的头文件

    我们在使用c编程的时候经常会遇到头文件,前段时间我自己做了个小项目的时候,也遇到了关于头文件的问题. 预处理器发现#include 指令后,就会寻找后跟的文件名并把这个文件包含的内容包含到当前文件中. ...

  6. Android fragment 回调函数改进

    由于fragment的onResume()等回调的调用时机与Activity不一样,导致用起来比较麻烦,所以我重新封装了一下回调函数,十分简单. 使用时只需要继承此基类,使用onFragmentXXX ...

  7. Android开发UI之布局文件LinearLayout

    LinearLayout-线性布局,该布局中的控件按照水平方向排列或者竖直方向排列. 通过属性android:orientation=""决定的,可选值:vertical和hori ...

  8. C#中is、as的区别

    一.C#类型的转换 在c#中类型的转换分两种:显式和隐式,基本的规则如下: 1.基类对象转化为子类对象,必须显式转换,规则:(类型名) 对象.2.值类型和引用类型的转换采用装箱(boxing)或拆箱( ...

  9. BrnMall多店版网上商城正式发布

    前些日子一直忙于多店版网上商城系统BrnMall的开发,工作比较多,所以博客断了.这几天项目完成了,时间比较自由,所以把这段时间总结的一些关于单店版BrnShop和多店版BrnMall区别写下来,希望 ...

  10. zookeeper服务器端管理工具

    zookeeper基本是基于API和console进行znode的操作,并没有一个比较方便的操作界面,这里也发现了taobao 伯岩写的一个工具,可以比较方便的查询zookeeper信息. 工具的开发 ...