浏览器大全/360浏览器/内容

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

360浏览器2022-10-20 阅读()
360浏览器(360SE),最好用、安全的浏览器,网购首选!360安全浏览器采用先进的恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。360安全浏览器强大、好用、设计人性化、安全快速!安全上网不中招,就用360安全浏览器。

   测试同学那边提交了一个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


360安全浏览器完全突破了传统的以查杀、拦截为核心的安全思路,在计算机系统内部构造了一个独立的虚拟空间——“360沙箱”,使所有网页程序都密闭在此空间内运行。因此,网页上任何木马、病毒、恶意程序的攻击都会被限制在“360沙箱”中,无法对真实的计算机系统产生破坏,真正做到百毒不侵。


……

相关阅读