360浏览器下加入收藏夹功能失效的问题

夜森林loveNo1

夜森林loveNo1

2016-03-31 17:10

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是360浏览器下加入收藏夹功能失效的问题,一起来学习了解下吧!

360浏览器下加入收藏夹功能失效的问题

   测试同学那边提交了一个bug,是360浏览器下无法使用加入收藏夹功能。我简单的看了下,在ie浏览器下,加入收藏夹的功能是正常的,而360显然用的是ie内核,理论上没理由不行的。

  不过还是下载了360自己试了一下,没想到真的不行。。

  于是开始了这次的调式:

  首先上测试代码

360浏览器下加入收藏夹功能失效的问题 图老师

  事实证明,360使用的ie的内核,但是也确实没有得到预想的效果。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/liulanqijianrong/)

  由于在360下,即时有错也看不到错误提示,所以简单的判断就是,window.external.AddFavorite这里是不是有问题呢。

  alert(window.external) //360 undefined & ie [object]

  好吧,360下没有AddFavorite方法了。。

  原生的被改了,只好放弃对360的支持了。

  那么判断一下,window.external是否存在,如果不存在,就给予提示。

  但是脚本并没有进入对应的分支,如下:

  if(!window.external) {

  alert('360?'); // unexec

  }

  alert(!!window.external) //ie&360 true

  呃。。。再来几个判断看看:

  alert(window.external == window.undefined) //ie&360 false

  alert(typeof window.external == "undefined") //ie&360 false

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/liulanqijianrong/)

  alert(typeof window.external == "object") //ie&360 true

  我应该怎么判断才好。。。

  KISSY框架倒是有判断外壳的方法,但是360提供了可以伪装ie的user-agent的选项(3q大战增加的?)

  如果依赖这种方法来判断的话,依然有可能会有用户狠狠的点击着收藏链接然后大骂。。。

  于是想要用捕捉错误的方式来处理,

  try {

  window.external.AddFavorite(href, title);

  }catch(e) {

  alert('360?');

  }

  然后发现,居然没有捕捉到错误!!

  我好奇了,window.external到底是什么。。

  alert(window.external.toString);// ie & 360 undefined

  好吧,没有toString方法。。

  执行window.external.toString();的时候,在ie下当然就报错了,但是360下没有报错。。

  ok,终于找到方法啦。

2.jpg

展开更多 50%)
分享

猜你喜欢

360浏览器下加入收藏夹功能失效的问题

浏览器
360浏览器下加入收藏夹功能失效的问题

通用的加入收藏夹代码支持IE Firefox等浏览器

Web开发
通用的加入收藏夹代码支持IE Firefox等浏览器

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

360浏览器怎么恢复收藏夹

浏览器
360浏览器怎么恢复收藏夹

360浏览器收藏夹在哪里?

浏览器
360浏览器收藏夹在哪里?

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

360浏览器收藏夹路径及收藏夹导出方法

浏览器
360浏览器收藏夹路径及收藏夹导出方法

360浏览器收藏夹路径在哪里?

浏览器
360浏览器收藏夹路径在哪里?

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

数码大师制作宝宝电子相册

数码大师制作宝宝电子相册

金山打字通数字键位练习

金山打字通数字键位练习
下拉加载更多内容 ↓