❗ 本文最后更新于 5937 天前,文中所描述的信息可能已发生改变,请谨慎使用。
Maxthon,一个大家熟得不能再熟的软件。我某位同事甚至这样的赞许它:“对我来说,Maxthon就是浏览器,浏览器就是Maxthon”。我这里不想讨论Maxthon是好是坏,只是如实的记录工作中由Maxthon带来的一些问题。我的Maxthon是官方的2.1.4,采用默认配置。由于Maxthon是一个IE Shell,我在测试中用系统自带的IE作为参考。
一、Maxthon会错误的处理某些JS事件。试着在IE地址栏中输入下列代码:
javascript:window.onbeforeunload = function(){return "你真的要关闭?"};void(0);
然后关闭浏览器当前Tab(IE7、IE8),或当前窗口(IE6),你会发现系统会给出“确实要离开页面…”之内的提示,选择“确定”才会执行关闭。但Maxthon不会这么做,弹出关闭提示时,当前tab/窗口已经关闭,无论选什么都无济于事。另外一个问题是Maxthon里鼠标右键点击,得到的返回键值不对。在地址栏输入以下代码:
javascript:document.onmousedown = function(){alert(event.button)};void(0);
在IE里右键单击返回的是2,而Maxthon返回0。这个就很让人费解了,都是IE内核,不应该有不同呐。
二、Maxthon会导致Flash本地存储失效。我上篇博客讲到了如何使用Flash来实现IE跨文件夹本地存储,没想到这种方法在Maxthon下不工作,测试地址在这里。我一开始怀疑是我代码有问题,后来发现国外一个本地存储组件PersistJS有同样的问题,有兴趣的同学可以去试一下。我分析Maxthon出于安全的考虑,不让JS去调用Flash中的方法。不过我在Maxthon的设置里没有找到相关内容。就算可以设置也意义不大,肯定很少有人去改的。
注:这个问题我已经找到解决方案了,是Maxthon强制缓存Flash引发的问题,给引用flash的地址加一个随机字符串就OK了。详情见这篇博客。
三、Maxthon会将弹出窗口强制显示为tab。在弹出广告满天飞的时代,这样做是一个很人性化的设计。但有些时候tab会降低用户体验。比如:在IE中,web msn是由一个联系人列表窗口和若干聊天窗口组成,用户体验与msn客户端很类似,在傲游中,一切窗口都以Tab的形式来展示,想同时显示联系人和多个聊天窗口几乎办不到。另外,一些情况下,子窗口被设计为父窗口的辅助输入工具,例如日期选择,编辑器的表情选择等等,这些情况也更适合使用小号弹出窗口而不是Tab。Maxthon这种设计还有可能会阻断子窗口与父窗口之间的通讯。还拿web msn来说,IE下如果已经存在好友聊天窗口,在联系人列表中点击该好友,聊天窗口会被激活,Maxthon下则不会。与此类似的问题还有,Maxthon有一个“强制在新标签中打开链接”的功能,这个功能一样会带来一堆问题,但默认是关闭的,所以问题不大。
刚发现aoao同学也把Maxthon狠狠的批了一顿,看来以后真的要倡导大家“珍爱生命,远离Maxthon”了。
本文链接:https://mailseason.com/post/maxthon-issue.html,参与评论 »
--EOF--
发表于 2008-09-20 13:19:21,并被添加「Bug、Maxthon」标签。查看本文 Markdown 版本 »
专题「浏览器」的其他文章 »
- iOS 10 Safari 视频播放新政策 (Oct 07, 2016)
- Chrome 中 scrollingElement 的变化 (Apr 16, 2016)
- 域名小知识:Public Suffix List (Nov 28, 2015)
- window.opener.location 安全风险讨论 (Oct 09, 2015)
- 使用 SRI 增强 localStorage 代码安全 (Sep 26, 2015)
- Subresource Integrity 介绍 (Sep 23, 2015)
- 移动 Web 与 JavaScript 定时器 (Mar 27, 2014)
- Chrome 和 Web Fonts 二三事 (Mar 24, 2014)
- Webkit 异步加载 CSS 的奇怪现象 (Dec 25, 2013)
- 小成本实现部分选中的复选框 (Dec 22, 2013)
Comments
Waline 评论加载中...