【Javascript】360浏览器下加入收藏夹功能无效
很奇怪的问题,一开始以为是IE8的问题,后来查了一下网络,原来是360浏览器下加入收藏夹功能会失效。备注:测试版本为360安全浏览器3.5版。
“为了安全所以禁用了加入收藏夹功能”,360覆盖了window.external.AddFavorite方法,导致功能失效。
无解,只能给用户一个提示,引导用户“远离360”。
修改后的兼容多浏览器的加入收藏夹代码如下:
function addFavorite(url, title) { var ua = navigator.userAgent.toLowerCase(); if (ua.indexOf("360se") > -1){ alert("由于360浏览器功能限制,加入收藏夹功能失效!"); } else if (ua.indexOf("msie 8") > -1){ window.external.AddToFavoritesBar(url, title);//IE8 } else if (document.all){ window.external.addFavorite(url, title); } else if (window.sidebar){ window.sidebar.addPanel(title, url, ""); } else{ alert("对不起,您的浏览器不支持加入收藏夹功能!"); } }
具体的原因分析见360浏览器下加入收藏夹功能失效的问题
p.s.还碰到Discuz 7在360浏览器下,发帖界面上传中文文件,文件上传后在文件列表中没有显示,暂未查到原因,如有碰到过的同学,欢迎告知。
标签: Javascript
在实际项目中发现window.sidebar.addPanel,FF虽然支持,但是总是在侧边栏中显示(收藏栏位置)
[回复]
晴枫 12月 13th, 2011 下午11:34 回复:
@第五跑道, 可能跟你浏览器用了插件或设置有关,我测试了下会弹出小窗口
[回复]
跟楼主求助个问题,其实你的博客也有这个问题。WORDPRESS留言的时候,如果是游客,兴冲冲地写了一堆回复,提交后发现进入一个死胡同,只提示出错。后退之后发现刚刚输入的留言全没了(有些浏览器会恢复,但那是浏览器的功能),这对于回复评论的人来说是个特别糟糕的体验。为了解决这个问题,两天来我试了许多方法,由于功底薄弱,没能解决,所以希望晴枫兄有空能指一条明路,非常感谢!
一开始,我想用写缓存,然后自动恢复的方法,但后来发现工程太大,而且貌似不同浏览器的支持有差异。后来又到处理留言的php文件里去看,发现是调用了 wp-die()的方法造成的死胡同,想把这个方法换掉,改为弹窗,但也失败了。
最后我能不能拦截提交按键,在按下去之后先判断一下各个文本框的合法性再提交,不合法就弹窗。
在网上找到《WordPress评论表单验证》http://leotheme.cn/wordpress/wordpress-comment-form-proof.html 这篇文章。这里面刚好能解决我的问题,但我不知道要怎么实现。在最后“绑定事件”那里卡住了。
[回复]
晴枫 8月 25th, 2011 下午11:26 回复:
@cailman, 在button的onclick的时候加个检验函数,return false;就可以停止提交了
[回复]
这个问题我也碰过,因为我做博客的时候试过几种主流的浏览器,发现基于IE内核的浏览可以弹出加入收藏夹对话框,opera,火狐,还有chrome已经把这个砍掉了。不排除360浏览器的新版本会把这个也特别地去掉。因为这个功能对于浏览者来说是多余且令人生厌的。
[回复]
晴枫 8月 25th, 2011 下午11:24 回复:
@cailman, 没有吧 测试过火狐,正常的
[回复]
360此举不知何故。
[回复]
晴枫 8月 25th, 2011 下午11:25 回复:
@Freetao, “安全”考虑
[回复]