Firefox:修改navigator.platform的值

这是啥

目前有很多网站通过判断navigator.platform的值来处理用户使用的是电脑还是手机,判断JS代码如下(当然你也可以使用这样的方式判断,只是不一定有用):

遇到一个网站使用了navigator.platform+user agent的方式来判断用户是否使用电脑或者手机,有时候我们又想在电脑上使用这个网站(比如很多小一点的视频网站,只能手机看,也许是手机可以关注微信把)。

那么如何破解呢,往下看。

firefox标志

破解方法

大概几步:

  1. 在Firefox上,地址栏里面输入about:config
  2. 搜索框里面输入:general.platform.override ,如果有就修改值为: Android ,没有往下看
  3. 在空白处,右键->新建->字符串
  4. 输入值为: general.platform.override ,输入: Android
  5. 保存即可.刷新页面.

上面的步骤之后,可以按f12在控制台输入 navigator.platform 看下输出的字符是否是刚才修改的.

修改 navigator.platform 有一个限制(参考官方):

在普通网页中,如果about:config中存在general.platform.override项,则该属性的值会返回about:config中general.platform.override项的值. 在特权代码中 (chrome上下文或者拥有”UniversalBrowserRead”特权的网页中),返回的还是真实的平台类型.(译者注:语句:netscape.security.PrivilegeManager.enablePrivilege(“UniversalBrowserRead “)用来激活所在网页的UniversalBrowserRead特权.)

如果还是不行,就需要借助User-Agent Switcher这个Firefox扩展了.安装这个扩展,然后选择移动端的User-Agent就可以了.

我就是通过修改general.platform.override和User-Agent Switcher来解决访问某个网站被跳转的问题.

P:

修改navigator.platform的方式参考: 地址

Vue:切换class模拟实现tab

实现个切换

其实就是翻译了jQuery的removeClass和addClass,只是在Vue里面使用了变量去切换.

vuejs logo

运行效果

vuejs tab 运行效果

源码

源码比较简单,引用了bootcss的cdn服务.

Element-UI:缓存Tabs打开的页签

竟然不缓存?

在使用Element ui 的时候,发现Tabs挺好用,于是做了这样一个页面:左侧是菜单,右侧顶部是Tabs,右侧下方是iframe.一切就绪,问题出现,就是每次点菜单的时候,Tabs就会新增一个页签,这导致iframe增加不少.于是想了个办法,来解决这个问题.

  1. 在menu菜单中,index直接为页面的名称;
  2. 在Select事件中,拿到index就可以请求页面了;
  3. 请求页面的时候,先判断页面是否已经存在于缓存中.如果存在则直接激活该页签,不存在就先添加到Tabs,然后激活,并放入缓存中.
  4. over……

但这样,存在另外一个问题:如果有几十个菜单,会堆叠几十个iframe.侧面一想,如果共用一个iframe,那么会出现另外一个问题,就是可能在上一个页面只输入了一部分文本,还没处理就切换页签,会丢失上个页面的数据.

于是,在菜单量不多的情况下,还是每个页签一个单独的iframe.便于处理.

html

源码

只有main.html是有实质内容的,其余html都是为了演示数据.

代码可以直接在本地运行,可以保存成文件,进行运行.

main.html

roleList.html

userAdd.html

userList.html

roleAdd.html

Echart:使用AngularJS对Tooltip显示的信息排序

源于

今天遇到一个需求,是这样:需要echart的图表在显示Tooltip的时候对数据进行排序,说干就干.另外一个问题是,项目是用的AngularJS,瞬间想起,我以前也搞过一段时间的AngularJS,无奈当时无用武之地,就此荒废了.于是去找文档补习了下AngularJS.

就搞定了这个需求.

echart中tooltip排序显示

源码

完整源码,效果可以自己运行
如果需要将AngularJS换成jQuery,只需要将formatterTooltip函数中的代码替换成jQuery语法即可.

JavaScript:删除对象无值的属性

来源

首先是不知道object不知道有什么属性,而需要过滤无值的属性.然后……其他处理.

html

源码

博客有点问题,过几天需要修复一下.