IE的JavaScript关闭规则与事件处理程序是否不同?

时间:2018-10-21 02:05:27

标签: javascript internet-explorer scope closures event-listener

我的脚本与FF和Chrome完美兼容,但与IE则不兼容。这是一个简单的同形异物:

(function() {
	var closure = "hi";

	var f = function() {
		console.dir(closure);
	};

	f(); // hi

	window.onload = function() {
		f(); // undefined
	};
}());

我的代码错误并且GC / FF宽容吗?如果要设计类似的功能,如何在多个平台上实现?

1 个答案:

答案 0 :(得分:0)

我无法重现您的问题。我使用以下代码创建了一个示例,看来一切都对我而言很好(Chrome和IE 11(11.1.17134.0)),请参考。

<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="../Scripts/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
        $(function () {
            var closure = "hi";
            var f = function (message) {
                console.dir(message);
            };
            f(closure); // hi
            window.onload = function () {
                f("world"); //
            };
        }());
    </script>
</head>
<body>
</body>

结果如下: enter image description here