当前位置:   article > 正文

HTTPS安全模式下,讨厌的IE "nosecure" warning

no secure warning
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方案, 示例如下:

    // 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:
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/547648
推荐阅读
相关标签
  

闽ICP备14008679号