Opera 11.50 2个BUG
首先,我的操作系统是 Windows 2003 R2 ENT SP2(11年8月份的补丁还没打,但至少下面这SELECT的BUG是我上个月就发现的,所以和系统补丁无关)
Opera版本是 11.50 1074
下面这是一个SELECT的BUG,一般捕获SELECT控件的变化都是用onchange的吧??为了避免用户重复选择,一般会这样的吧??
obj.disabled = true;
// dosomething...
obj.disabled = false;
看下面代码吧
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>SELECT BUG</title> <script type="text/javascript" language="javascript"> // <![CDATA[ function bug(obj) { obj.disabled = true; document.getElementById("console").innerHTML = obj.selectedIndex; obj.disabled = false; } // ]]> </script> </head> <body> <select id="sbug" style="width:50px;" onchange="bug(this)"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <div id="console"></div> </body> </html>
当你选择任意一个option的时候,你会发现下拉框并没有消失...你可以继续选其他的option,但此时select的真实selectedIndex是你第一次选的那个option...
如果你是选择完option后,马上鼠标点击页面上其他地方,此时...虽然selectedIndex还是第一次选的option,但......看上去选择的却是空白...说那么多,还不如直接一幅动态截图来得直接,看图
下一个BUG...
关于动态创建INPUT控件的问题
input type=[image|button],如果value属性在type属性设置前就已经设置了,则在设置type属性后,value属性会被重置为"",看代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>INPUT TYPE=[IMAGE|BUTTON] BUG</title> <script type="text/javascript" language="javascript"> // <![CDATA[ window.onload = function() { var o = document.createElement("INPUT"); o.value = "BUG?"; o.type = "image"; o.type = "button"; //o.value = "NORMAL"; document.body.appendChild(o); alert(document.getElementsByTagName("INPUT")[0].value); // "" }; // ]]> </script> </head> <body> </body> </html>
其实呢...第一个BUG我上个月就提交给OPERA了...但无奈...到底是我E文太差描述不清楚,还是OPERA认为这根本就不算BUG呢??因为我还没在BUG列表上看到关于这个BUG的描述...而第二个BUG...今天发现的...也提交给OPERA了...
当然,第二个BUG完全是得闲没事做才会那样写(主要是我封装的动态创建NODE函数中,属性是用Object装载的,用for in的时候是无法指定顺序的,所以有时候value很不幸的比type还早设置...)