<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JerryQu的小站 &#187; Bug</title>
	<atom:link href="http://www.qgy18.com/tag/bug/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.qgy18.com</link>
	<description></description>
	<lastBuildDate>Tue, 16 Mar 2010 03:42:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Maxthon引发的系列问题</title>
		<link>http://www.qgy18.com/2008/09/maxthon-bugs/</link>
		<comments>http://www.qgy18.com/2008/09/maxthon-bugs/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 03:17:48 +0000</pubDate>
		<dc:creator>Jerry Qu</dc:creator>
				<category><![CDATA[前端开发]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Maxthon]]></category>

		<guid isPermaLink="false">http://www.qgy18.com/?p=58</guid>
		<description><![CDATA[Maxthon，一个大家熟得不能再熟的软件。我某位同事甚至这样的赞许它：“对我来说，Maxthon就是浏览器，浏览器就是Maxthon”。我这里不想讨论Maxthon是好是坏，只是如实的记录工作中由Maxthon带来的一些问题。我的Maxthon是官方的2.1.4，采用默认配置。由于Maxthon是一个IE Shell，我在测试中用系统自带的IE作为参考。 一、Maxthon会错误的处理某些JS事件。试着在IE地址栏中输入下列代码... ]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.maxthon.com/">Maxthon</a>，一个大家熟得不能再熟的软件。我某位同事甚至这样的赞许它：“对我来说，Maxthon就是浏览器，浏览器就是Maxthon”。我这里不想讨论Maxthon是好是坏，只是如实的记录工作中由Maxthon带来的一些问题。我的Maxthon是官方的2.1.4，采用默认配置。由于Maxthon是一个IE Shell，我在测试中用系统自带的IE作为参考。</p>
<p>一、Maxthon会错误的处理某些JS事件。试着在IE地址栏中输入下列代码：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">javascript</span><span style="color: Gray;">:</span><span style="color: Teal;">window</span><span style="color: Gray;">.</span><span style="color: Blue;">onbeforeunload</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(){</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">你真的要关闭？</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">;</span><span style="color: Green;">void</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p>然后关闭浏览器当前Tab(IE7、IE8)，或当前窗口(IE6)，你会发现系统会给出“确实要离开页面&#8230;”之内的提示，选择“确定”才会执行关闭。但Maxthon不会这么做，弹出关闭提示时，当前tab/窗口已经关闭，无论选什么都无济于事。另外一个问题是Maxthon里鼠标右键点击，得到的返回键值不对。在地址栏输入以下代码：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">javascript</span><span style="color: Gray;">:</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">onmousedown</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(){</span><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Gray;">.</span><span style="color: Blue;">button</span><span style="color: Olive;">)}</span><span style="color: Gray;">;</span><span style="color: Green;">void</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p>在IE里右键单击返回的是2，而Maxthon返回0。这个就很让人费解了，都是IE内核，不应该有不同呐。<br />
<span id="more-58"></span><br />
二、Maxthon会导致Flash本地存储失效。我上篇博客讲到了<a href="http://www.qgy18.com/2008/09/howto_flash-localstorage/">如何使用Flash来实现IE跨文件夹本地存储</a>，没想到这种方法在Maxthon下不工作，<a href="http://www.qgy18.com/lab/flashstorage/">测试地址在这里</a>。我一开始怀疑是我代码有问题，后来发现国外一个本地存储组件<a href="http://pablotron.org/?cid=1557">PersistJS</a>有同样的问题，有兴趣的同学可以去试一下。我分析Maxthon出于安全的考虑，不让JS去调用Flash中的方法。不过我在Maxthon的设置里没有找到相关内容。就算可以设置也意义不大，肯定很少有人去改的。</p>
<p><strong>注：</strong>这个问题我已经找到解决方案了，是Maxthon强制缓存Flash引发的问题，给引用flash的地址加一个随机字符串就OK了。<a href="http://hi.baidu.com/comdeng/blog/item/377dad8f1342b5edf01f36d9.html">详情见这篇博客</a>。</p>
<p>三、Maxthon会将弹出窗口强制显示为tab。在弹出广告满天飞的时代，这样做是一个很人性化的设计。但有些时候tab会降低用户体验。比如：在IE中，<a href="http://webmessenger.msn.com/">web msn</a>是由一个联系人列表窗口和若干聊天窗口组成，用户体验与msn客户端很类似，在傲游中，一切窗口都以Tab的形式来展示，想同时显示联系人和多个聊天窗口几乎办不到。另外，一些情况下，子窗口被设计为父窗口的辅助输入工具，例如日期选择，编辑器的表情选择等等，这些情况也更适合使用小号弹出窗口而不是Tab。Maxthon这种设计还有可能会阻断子窗口与父窗口之间的通讯。还拿web msn来说，IE下如果已经存在好友聊天窗口，在联系人列表中点击该好友，聊天窗口会被激活，Maxthon下则不会。与此类似的问题还有，Maxthon有一个“强制在新标签中打开链接”的功能，这个功能一样会带来一堆问题，但默认是关闭的，所以问题不大。</p>
<p>刚发现<a href="http://www.aoao.org.cn/blog/2008/09/maxthon-bugs/">aoao同学也把Maxthon狠狠的批了一顿</a>，看来以后真的要倡导大家“珍爱生命，远离Maxthon”了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qgy18.com/2008/09/maxthon-bugs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
