今天解決了一個(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:

2

3

4

5

6

7

8

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

再次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)題。
修改iframe的src屬性:
var iframe=document.createElement("<iframe src='javascript:\"\"'>");
運(yùn)行效果一樣。
但在這里我發(fā)現(xiàn)有一個(gè)有趣的現(xiàn)象。修改代碼如下:
var iframe=document.createElement("<iframe src='javascrip:'>");
運(yùn)行后發(fā)現(xiàn),在firefox下,當(dāng)運(yùn)行到上面語(yǔ)句的時(shí)候,firefox將會(huì)兩次彈出錯(cuò)誤控制臺(tái)。很奇怪啊!!!
這樣的,照樣出現(xiàn)提示。不知道為何?