一、bug问题汇总
做st care corp web 时遇到了Prototype $()取不了弹出层里input元素的值(总为空),有可能喺ajax过来后浏览器综合环境有问题,指弹出层插件同prototype 同浏览器共同作用下产生了不知名的复杂问题,如此实在找不出解决办法,可以使用终极解决办法,此办法这里将称为回归原始原则,做法喺使用onkeyup监听输入再暂存输入即可。
<input type="text" name="mobile" id="mobile" maxlength="30" onkeyup="mobileInput(this.value);" style="width:80px;" />
iPhone 6,7(只测试过),htlm5 当iphone从homescreen启动时, window.history.back()
, history.go(-1)无效
参考:http://stackoverflow.com/questions/21625126/window-history-go-1-not-working-in-ios-homescreen-app
以固定viewport製作網頁,iphone homescreen 啟動後橫屏瀏覽,出現不占滿屏幕問題,特別在有input輸入框激活下(ios bug)
iPhone下,當manifest load 完後,設置自動刷新網頁,會存在修改無效果的情況,因此時並沒有刷新到最新版本。改變做法,不要自動刷新,load完後出現button,讓用戶手動點擊刷新即可避免此問題。
發現在android 4.4.2 上, 用keyboard backspace 對於onkeyup事件無效[android 4.4.2 的bug](android 4.4.2以下和iphone ok),使用oninput解決
在android封裝到browser的網頁時,寫在dom裏的彈出瀏覽器的選擇是可以的,如果用js調用彈出瀏覽器代碼就不行了,如下:
//ok
<a href="aa.html" target="_blank">pop up</a>
//ok
<div onmousedown="NewWin()">pop up</div>
//not ok
<div onmousedown="test()">pop up</div>
function test(){
ajax(
finish:function(){
NewWin();
}
);
}
function NewWin(){
var a = document.createElement('a');
a.setAttribute("href", sURL);
a.setAttribute("target", "_blank");
var dispatch = document.createEvent("HTMLEvents");
dispatch.initEvent("click", true, true);
a.dispatchEvent(dispatch);
a=null;
}
使用onmousedown兼容性最好,但是反應慢大概200ms
注意橫屏與豎屏,有些平版是橫屏豎屏對調的
待续。。。
二、总结
使用新技术时要全面了解该技术,比如优劣,支持度,普及度,现在已知的相关bug,这些方面都要全面调查清除,为技术选型做好坚实的基础,以避免在开发深水区做大量的代码架构的改动。
开发人员要与市场部,设计人员密切频繁的交流,有问题马上问,如不方便也要及时记录,摒弃消极不关己的心态!
控制开发节奏和时间
javascript 能力训练实战
存在问题,代码组织乱且零散,逻辑复杂,架构不成样,内存问题
待续。。。