IE6和Apache Logs的Superfish悬停问题

问题描述 投票:0回答:2

我在ie6上使用jQuery Superfish菜单,从我可以从我的会话的Apache日志文件中看到的是,每当我将鼠标悬停在我的Superfish菜单中的菜单项上时,该菜单项具有子菜单,用菜单项描述有白色菜单项标签右侧的箭头图像,整个堆(比如25行)的日志条目吐出以下类型的消息:

- - [23/Aug/2010:11:57:45 +1000] "GET /abcprod/images/arrows-ffffff.png HTTP/1.1" 304 - etc…..

我不确定数字304表示Apache日志中的位置是什么?

每次我将鼠标悬停在带有子菜单的菜单项上时,这些类型的条目都会一直显示,这也包括也有子菜单项的子菜单项。

但奇怪的是,当通过谷歌浏览器运行应用程序并在Apache日志中检查该会话时,它确实吐出了与arrows-ffffff.png图像相关的任何内容。

ie6与Superfish菜单悬停一起发生了什么?

仅供参考,我还包括了关于类f-sub指标的Superfish用户的CSS,即

.sf-sub-indicator {
position:       absolute;
display:        block;
right:          .75em;
top:            1.05em; /* IE6 only */
width:          10px;
height:         10px;
text-indent:    -999em;
overflow:       hidden;
    background:     url("/abcprod/images/arrows-ffffff.png") no-repeat -10px -100px;
}
==>
a > .sf-sub-indicator {  /* give all except IE6 the correct values */
    top:            .8em;
    background-position: 0 -100px; /* use translucent arrow for modern browsers*/
}

/* apply hovers to modern browsers */
a:focus > .sf-sub-indicator,
a:hover > .sf-sub-indicator,
a:active > .sf-sub-indicator,
li:hover > a > .sf-sub-indicator,
li.sfHover > a > .sf-sub-indicator {
    background-position: -10px -100px; /* arrow hovers for modern browsers*/
}
jquery css apache hover superfish
2个回答
0
投票

在IE6的上下文中不确定SuperFish的细节(不是它死了吗?( - ;)和jQuery,但是“304”是像404,403等的HTTP代码.304表示文件没有自上次请求以来已被修改。为缓存,减少对服务器的请求等提供了便利。

有关状态代码的更多信息:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

当菜单被激活时,IE6可能会对此图像发出“GET”请求...?它请求相同的文件25次......?使用箭头激活第一个子菜单,并计算箭头数。然后检查日志。如果日志条目数等于箭头数,您就知道IE6正在做什么。


1
投票

由于IE6不支持:hover伪选择器,我猜测superfish使用某种浏览器嗅探来应用IE特定的行为(类似于this)。

问题是因为CSS悬停规则被转换为javascript表达式,我猜想每次javascript行为转换元素时IE都足以请求新的img。

一个可能的解决方案是确保javascript只切换某个类(假设它添加了一个.hover类)然后让CSS将背景应用到类选择器上。一个例子:a:hover成为a.hover

© www.soinside.com 2019 - 2024. All rights reserved.