HTTPS安全模式下,讨厌的IE "nosecure" 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:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值