|
問(wèn)題描述:
一個(gè)jsp,用了JQuery綁定了畫(huà)面初期化事件($(function()),初期化事件中有alert(),
IE8下alert彈出消息對(duì)話框的瞬間,jsp頁(yè)面正常在瀏覽器下被渲染;
但是IE9下,alert彈出消息對(duì)話框瞬間,jsp頁(yè)面不被渲染,顯示個(gè)白頁(yè),當(dāng)點(diǎn)擊alert中的“OK”后,頁(yè)面才被渲染。
IE9下如何才能達(dá)到和IE8下同樣的效果?
試了ie9的兼容模式,不起作用。Jsp代碼中強(qiáng)制使用ie8解析模式,也不起作用。
解決辦法:
通過(guò)將alert或confirm包裝一層setTimeout。
復(fù)制代碼 代碼如下:
$(document).ready(function() {
setTimeout(test,0);
});
function test() {
if(confirm('OK?')) {
alert("think you!");
}
}
猜測(cè)結(jié)論:
用setTimeout方式可以解決問(wèn)題。
setTimeout("alert('XXX')", 0 );
ie9下這個(gè)問(wèn)題與JQuery沒(méi)有關(guān)系。使用setTimeout后,應(yīng)該是重啟了另外一個(gè)線程進(jìn)行alert,這樣就不會(huì)阻止jsp的正常渲染了。
jsp技術(shù):ie9下alert阻擋jsp渲染ie8下沒(méi)問(wèn)題,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。