美好的一天!JQuery对于不同的IE8安全设置表现很奇怪
我不确定我是否遇到了错误,请确认我没有生气。我在3台不同的机器上使用IE 8.0.7600.16385。
这里是简单的页面(我用JQuery 1.4.2和1.3.2测试过)。它只是在隐藏链接可见时显示警报。在安全区域设置为“受信任的Intranet”或IE7兼容模式下,它在我拥有的所有浏览器和IE8中显示为“false”。但是,当我上传此页面(或将安全区域更改为“Internet”)时,它会显示“true”。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru">
<head>
<title>
</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
<script type="text/javascript">
$(function(){
$('#vct-save-settings').click(function(){
alert('Is visible hidden element: ' + $('#vct-show-similar').is(':visible'));
});
});
</script>
<div class="vct-controls">
<a href="#" id="vct-hide-similar">Shown element</a>
<a href="#" id="vct-show-similar" style="display: none;">Hidden element</a>
<a href="#" id="vct-save-settings">click me!</a>
</div>
</body>
</html>
所以,问题是:为什么JQuery的行为不同,无论IE8安全区域?
在此先感谢!
我会记录一个错误。这绝对是不正确的行为。 – Pointy 2010-06-17 14:10:42
它似乎正在发生,因为IE报告元素的宽度和高度是非零的,jQuery过滤例程认为这比“display:none”更重要。 (是的,这是一个bug。) – Pointy 2010-06-17 14:16:00