pageshow事件中修改dom失敗
阿新 • • 發佈:2018-09-28
fontsize pre 執行 修改 感覺 lec javascrip cot 觸發
在移動端微信中h5頁面,點擊下方的返回按鈕,返回上一頁,頁面是不會刷新的,load事件和DOMCotentLoaded事件都不會觸發,只有pageshow是會觸發的。
我本意想在pageshow中修改頁面某個元素的樣式,但是發現總是修改失敗,我的代碼是這樣的:
window.addEventListener(‘pageshow‘, function() {
document.querySelector(‘.con‘).style.fontSize="16px";
})
後來經過一系列的調試才發現,在pageshow事件觸發的時候,dom結構感覺都還沒有構造完畢,所以就取不到dom對象
所以,經過一系列的嘗試,代碼修改成以下:
window.addEventListener(‘pageshow‘, function() {
setTimeout(function(){
document.querySelector(‘.con‘).style.fontSize="16px";
}, 1)
})
原理解析:
當pageshow觸發的時候,這個時候dom結構還沒有準備完畢,所以就加了一個延時,等到當前進程都完全執行好之後再去之獲取dom節點,這時候是能獲取的到的
pageshow事件中修改dom失敗