話說,前幾天的一個上午,正美滋兒的敲著代碼呢,Slack上突然蹦出來個消息,說我們有一個網頁布局亂掉了。
掏出手機看了下好像并沒有什么問題,Xcode build了一個線上的版本模擬器看了下也是正常的,感覺像是虛驚一場。正巧昨晚發布了iOS 10.3,于是就開始吭哧吭哧的升級手機和Xcode。升級完之后再打開那個出問題的頁面發現布局還真是亂掉了。但是不確定之前看正常是因為網絡緩存還是沒有升級10.3。
怎么亂掉的呢?document.ready的時候我做了一些布局的工作,但實際上這個時候元素還沒有被正常的layout,于是這里面拿到的全都是錯誤的寬高。
修起來很簡單,兩個辦法。
一個是setTimeOut,等著layout差不多完成的時候再去布局
另一個是window.onLoad,這個方法會在所有資源都加載完畢之后才會被調用
后來測下來發現果然只有10.3的WKWebView會出現這個問題。