2010-06-17 77 views
4

美好的一天!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安全区域?

在此先感谢!

+0

我会记录一个错误。这绝对是不正确的行为。 – Pointy 2010-06-17 14:10:42

+0

它似乎正在发生,因为IE报告元素的宽度和高度是非零的,jQuery过滤例程认为这比“display:none”更重要。 (是的,这是一个bug。) – Pointy 2010-06-17 14:16:00

回答

1

已经登录了jQuery bug跟踪器(bug 6199)。

编辑 —也只是发生,我认为这可能是涉及到把一个<a>标签的页面上并具有的伎俩安全的事情“:访问”风格,然后检查其当前形式通过Javascript。这样,一个页面可以告诉您访问过哪些网站其他网站。我不知道为什么会出现这种行为,但这是我能想象到安全区会影响行为的唯一原因。

+0

感谢您的快速回答,似乎安全区域也影响其他JQuery功能 - 例如从JQuery UI等进行排序。似乎有一些限制适用于Javascript。可能你有任何细节吗? 浏览器的行为与默认设置有着根本的不同...... – artvolk 2010-06-17 14:26:34

+0

链接到错误报告页面:http://dev.jquery.com/ticket/6199 看来你还没有提到它在不同的安全区域有不同的表现... – artvolk 2010-06-17 14:28:14

+0

没有错误报告没有提到 - 我会添加评论。其实这是我第一次听说过IE8这种奇怪的行为。我见过其他奇怪的东西,但没有像这样,在不同的安全区域有所不同。 – Pointy 2010-06-17 14:29:52