IOS React等Title不顯示問(wèn)題解決辦法
單頁(yè)應(yīng)用里整個(gè)頁(yè)面只會(huì)在第一次完全刷新,后面只會(huì)局部刷新(一般不包括head及里面的title),所以無(wú)法在服務(wù)器端控制title,只能在頁(yè)面刷新的時(shí)候通過(guò)js修改title。常規(guī)做法如下,可惜在iOS微信瀏覽器無(wú)效。
問(wèn)題原因:
因?yàn)槲⑿艦g覽器首次加載頁(yè)面初始化title后,就再也不監(jiān)聽(tīng) document.title的change事件。
解決方案:
修改title之后,給頁(yè)面加上一個(gè)內(nèi)容為空的iframe,隨后立即刪除這個(gè)iframe,這時(shí)候會(huì)刷新title。但是如果簡(jiǎn)單的這樣設(shè)置,一般是會(huì)有閃動(dòng)的,所以可以設(shè)置
iframe.style.cssText = 'display: none; width: 0; height: 0;';
完整的代碼:
document.title = '設(shè)置標(biāo)題HTTP'; const iframe = document.createElement('iframe'); iframe.style.cssText = 'display: none; width: 0; height: 0;'; iframe.src = 'http://desk.fd.zol-img.com.cn/t_s960x600c5/g5/M00/05/0F/ChMkJ1erCriIJ_opAAY8rSwt72wAAUU6gMmHKwABjzF444.jpg'; //iframe.src = require('./img/text_delete.png'); const listener = () => { setTimeout(() => { iframe.removeEventListener('load', listener); setTimeout(() => { document.body.removeChild(iframe); }, 0); }, 0); }; iframe.addEventListener('load', listener); document.body.appendChild(iframe);
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選