未调用文档 'load' 事件回调;我怎么搞砸了?
Document 'load' event callbacks not called; how did I mess this up?
在此 HTML 文档中,在 Chrome 中,我的 none 加载事件回调被调用:
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script>
console.log('just checking');
function someFunction () { console.log('test 3'); }
document.addEventListener('load', () => console.log('test 1'));
document.addEventListener('load', function () { console.log('test 2'); });
document.addEventListener('load', someFunction);
</script>
</head>
<body>
</body>
</html>
但是,我可以看到它们是在检查器中设置的:
并且控制台没有错误。
我几乎可以肯定这是我的一些小错误,但我无法弄清楚它是什么。
我花了相当多的时间在互联网上搜索原因,但在大多数情况下,我发现的每个 post 失败的加载回调通常都与访问 DOM 之前有关准备好了,这在这里并不适用。
我手动尝试在脚本上设置 defer
属性,但没有效果。
我在这里错过了什么...?
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script>
function docReady(func) {
document.addEventListener("DOMContentLoaded", function (event) {
func(event);
});
}
function someFunction () { console.log('test 3'); }
docReady(() => console.log('test 1'));
docReady(function () { console.log('test
2'); });
docReady(someFunction);
</script>
</head>
<body>
</body>
</html>
使用 'DOMContentLoaded' 代替 'load'
在此 HTML 文档中,在 Chrome 中,我的 none 加载事件回调被调用:
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script>
console.log('just checking');
function someFunction () { console.log('test 3'); }
document.addEventListener('load', () => console.log('test 1'));
document.addEventListener('load', function () { console.log('test 2'); });
document.addEventListener('load', someFunction);
</script>
</head>
<body>
</body>
</html>
但是,我可以看到它们是在检查器中设置的:
并且控制台没有错误。
我几乎可以肯定这是我的一些小错误,但我无法弄清楚它是什么。
我花了相当多的时间在互联网上搜索原因,但在大多数情况下,我发现的每个 post 失败的加载回调通常都与访问 DOM 之前有关准备好了,这在这里并不适用。
我手动尝试在脚本上设置 defer
属性,但没有效果。
我在这里错过了什么...?
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script>
function docReady(func) {
document.addEventListener("DOMContentLoaded", function (event) {
func(event);
});
}
function someFunction () { console.log('test 3'); }
docReady(() => console.log('test 1'));
docReady(function () { console.log('test
2'); });
docReady(someFunction);
</script>
</head>
<body>
</body>
</html>
使用 'DOMContentLoaded' 代替 'load'