IE浏览器,在HTTPS安全模式下预览WEB页面,我们经常会碰到下面的warning message:
"This page contains both secure and nonsecure items.
Do you want to display the nonsecure items?"
这个warning真的是很讨厌,虽然可以通过更改浏览器安全设置,禁止弹出这个warning dialog。但对一个成熟的WEB应用产品来说,强制用户去做这种浏览器设置是不友好的,用户体验上也会感觉很差。
哪怎么样才能从程序角度去避免弹出这个warning dialog呢?
我们首先需要了解可能引起这个warning的原因,简单归纳来说,不外乎是以下几点:
1) hard-code了http(或其它非https)的URL访问。
这是一个比较常见的问题,一般来说都不要在WEB页面中硬编码URL,可以采用相对URL。
2) WEB页面中含有没有设置SRC属性的iframe元素。
这个也比较常见,解决也很容易,可以给每个空的iframe设置SRC属性,这个src可以指向一个空的html页面,或是采用src="javascript:void()"这种方式。
3) 调用removeChild()方法去移除一个HTML元素,而这个元素包含一个backgroundImage背景图片的style引用。
这个严格来说,应该是IE的一个bug,可以在Microsoft官方网站上找到这个问题的描述和解决方案。不过即使是最新的IE8, 这个问题好像依然存在。
[url]http://support.microsoft.com/kb/925014[/url]
4) 调用innerHTML()方法给一个HTML元素添加内容,之后再把这个元素添加到HTML DOM中。
这个问题可能在一些Ajax应用中会碰到,通过Ajax动态更新HTML内容,如果内容包含image图片等等内容,也会弹出这个warning。
解决方案就是,先将这个元素添加到HTML DOM,然后再调用innerHTML方案, 示例如下:
在开发过程中,我也只是碰到过这四种情况。还有没有别的原因,就不得而知啦!
:wink:
"This page contains both secure and nonsecure items.
Do you want to display the nonsecure items?"
这个warning真的是很讨厌,虽然可以通过更改浏览器安全设置,禁止弹出这个warning dialog。但对一个成熟的WEB应用产品来说,强制用户去做这种浏览器设置是不友好的,用户体验上也会感觉很差。
哪怎么样才能从程序角度去避免弹出这个warning dialog呢?
我们首先需要了解可能引起这个warning的原因,简单归纳来说,不外乎是以下几点:
1) hard-code了http(或其它非https)的URL访问。
这是一个比较常见的问题,一般来说都不要在WEB页面中硬编码URL,可以采用相对URL。
2) WEB页面中含有没有设置SRC属性的iframe元素。
这个也比较常见,解决也很容易,可以给每个空的iframe设置SRC属性,这个src可以指向一个空的html页面,或是采用src="javascript:void()"这种方式。
3) 调用removeChild()方法去移除一个HTML元素,而这个元素包含一个backgroundImage背景图片的style引用。
这个严格来说,应该是IE的一个bug,可以在Microsoft官方网站上找到这个问题的描述和解决方案。不过即使是最新的IE8, 这个问题好像依然存在。
[url]http://support.microsoft.com/kb/925014[/url]
4) 调用innerHTML()方法给一个HTML元素添加内容,之后再把这个元素添加到HTML DOM中。
这个问题可能在一些Ajax应用中会碰到,通过Ajax动态更新HTML内容,如果内容包含image图片等等内容,也会弹出这个warning。
解决方案就是,先将这个元素添加到HTML DOM,然后再调用innerHTML方案, 示例如下:
// Create DIV element
var div = document.createElement( "DIV" );
// Append it to document first
document.body.appendChild(div);
// Then call innerHTML to insert HTML content
div.innerHTML = htmlContent;
......
在开发过程中,我也只是碰到过这四种情况。还有没有别的原因,就不得而知啦!
:wink: