欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


图解如何恢复IE浏览器为默认浏览器
如何才能让IE6浏览器支持fixed
IE浏览器出现“您的浏览器不支持cookies功能”解决方法
搜狗浏览器提示该站点安全证书的吊销信息不可用
浏览器字体大小设置
360安全浏览器怎么启用加速引擎
360浏览器怎么设置兼容模式?
教你怎样给浏览器设置密码
IE7粘贴板询问怎么关闭
UC浏览器TV版手机遥控器怎么用
360浏览器下加入收藏夹功能失效的问题
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

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

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

  于是开始了这次的调式:

  首先上测试代码

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

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

  由于在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

  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

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站