今天解決了一個(gè)困擾我們很久的一個(gè)問(wèn)題(說(shuō)是很久,但一直沒(méi)有花時(shí)間去research,想想不影響功能使用,沒(méi)什么啊。而真正解決問(wèn)題,也就那二十來(lái)分鐘,哎!人已經(jīng)懶惰成這樣了)。
問(wèn)題描述:
我們利用ajax做了一套系統(tǒng),但通過(guò)https訪問(wèn)的時(shí)候,IE總會(huì)彈出下面的對(duì)話框:

而在我們的代碼中所有的訪問(wèn)都是通過(guò)https的,怎么會(huì)有不安全的元素呢?在網(wǎng)上google了一下,有人提到可能是iframe的問(wèn)題。而在我們系統(tǒng)中確實(shí)用到了很多的iframe。修改code,去掉所有的iframe。再次run,上面的對(duì)話框沒(méi)有了,終于找到原因了。但是我們的系統(tǒng)中是需要iframe?。空?qǐng)看下面的code:

1var iframe=document.createElement("iframe");
2        iframe.style.zIndex=-1;
3        iframe.style.position="absolute";
4        iframe.style.left=0;
5        iframe.style.top=0;
6        iframe.style.width=menu.getSize().x-2;
7        iframe.style.height=menu.getSize().y-4;
8        menu.getHtmlElement().appendChild(iframe);

從上面的code,可以看出代碼中沒(méi)有指定src屬性,這樣IE是沒(méi)有辦法知道這個(gè)iframe將引用的是安全內(nèi)容還是不安全內(nèi)容呢。所以會(huì)彈出上面的對(duì)話框。增加src屬性,修改code:

var iframe=document.createElement("<iframe src='blank.html'>");//src是個(gè)只讀屬性,不能直接賦值,black.html是個(gè)空的靜態(tài)頁(yè)面。

再次run,對(duì)話框沒(méi)有了,問(wèn)題解決。

附錄:

在IE下,如果div懸浮在select上面。select會(huì)透過(guò)div顯示出來(lái)。這非常影響視覺(jué)效果。網(wǎng)上有很多的解決辦法,其中一個(gè)就是在div中增加iframe。我們就是通過(guò)這個(gè)方法的,但又產(chǎn)生了這個(gè)問(wèn)題。