簡體   English   中英

有沒有辦法停止IE9中的這個JavaScript錯誤

[英]Is there a way to stop this javascript bug in IE9

我在IE9中顯示一些JavaScript代碼時遇到問題,它在Chrome,Firefox,甚至IE8中都可以正常工作。 但是,在IE9中運行時,會發生一些奇怪的事情。 基本上,將鼠標懸停在the上是為了使一些文本出現在疊加層上,但是在IE9中,第一個疊加層已被克隆或其他內容,因此我得到的條形與第一個div的樣式和位置相同,但是沒有內容。 以下是HTML外觀的示例:

<img usemap="#mymap"/>
<map id="mymap">
<area id="first" onmouseover="ShowOverlay(this);" onmouseout="HideOverlays()";>
<area id="second" onmouseover="ShowOverlay(this);" onmouseout="HideOverlays()";>
</map>
<div id="first-Overlay" class="overlay" onmouseover="OverlayOnHover(this);" onmouseout="OverlayMouseOff(this);">
some text here.
</div>
<div id="second-Overlay" class="overlay" onmouseover="OverlayOnHover(this);" onmouseout="OverlayMouseOff(this);">
more text here.
</div>

附帶的javascript是:

<script type="text/javascript">
var PreviousOverlay;
function ShowOverlay(sender) {
    if (PreviousOverlay) {
        PreviousOverlay.style.display = 'none';
    }
    NewOverlay = document.getElementById(sender.id + '-Overlay');
    if (NewOverlay) {
        NewOverlay.style.display = 'inline';
    }
    PreviousOverlay = NewOverlay;

    return false;
}
function HideOverlays() {
    if (PreviousOverlay) {
        PreviousOverlay.style.display = 'none';
    }
    PreviousOverlay = null;
    return false;
}
function OverlayOnHover(Overlay) {
    Overlay.style.display = 'inline';
}
function OverlayMouseOff(Overlay) {
    Overlay.style.display = 'none';
}
</script>

使用IE中的Web Developer工具,我可以將“ first-Overlay”顯示更改為內聯,然后它將與getElementById('first-Overlay')返回的條一起顯示。 有人知道IE9中的原因嗎? 就考慮解決方法而言,我確實遇到了麻煩。

我嘗試使用jQuery,但該錯誤仍然發生。

最后,我的解決方法是在第一個div的前面添加一個具有絕對定位的虛擬div,以此類推。 該div永遠不會顯示,因此該錯誤不會產生任何可見效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM