Maxthon引发的系列问题

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”了。

本文链接:参与评论 »

--EOF--

提醒:本文最后更新于 2998 天前,文中所描述的信息可能已发生改变,请谨慎使用。

专题「浏览器」的其他文章 »

Comments