在IE11中未定义Javascript函数

时间:2017-08-07 01:20:19

标签: javascript html

我写了一个示例html页面来显示一个弹出式div,它在firefox中工作,但不在IE中。它说功能未定义。

这是我的页面:
并且错误消息是“'show_popup_div'未定义”

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=unicode" />

    <script type="text/javascript">

        function show_popup_div() {
            var imageDiv=document.getElementById("image_div");
            var switchA=document.getElementById("switch_a");
            imageDiv.style.display='block';
        }

        async function hide_popup_div() {
            var imageDiv=document.getElementById("image_div");
            await sleep(5000);
            imageDiv.style.display='none';
        }          

        function sleep(ms) {
            return new Promise(resolve => setTimeout(resolve, ms));
        }

    </script>
</head>
<body>

    <a id="switch_a" onmousemove="show_popup_div()" onmouseout="hide_popup_div()">click me to open a image</a>
    <div id="image_div">
        <img id="image" src="http://www.rd.com/wp-content/uploads/sites/2/2016/02/06-train-cat-shake-hands.jpg" usemap="#map1"/>

    </div>

</body>

我该如何解决这个问题?谢谢。

2 个答案:

答案 0 :(得分:2)

我认为,如果没有Jaromanda X提到的Javascript库,Promise功能根本不兼容IE。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise

答案 1 :(得分:1)

此效果不需要JavaScript,您可以使用:hover伪类和+邻接元素选择器使用纯CSS:

#image_div {
    display: none;
}

#switch_a:hover + #image_div {
    display: block;
}