【问题标题】:Javascript: Uncaught TypeError: window.setTimeout(...) is not a functionJavascript:未捕获的 TypeError:window.setTimeout(...) 不是函数
【发布时间】:2020-07-17 10:43:41
【问题描述】:

我在 setTimeout() 中封装了一个 Javascript 函数,我正在通过 Google 跟踪代码管理器在网站上运行此代码。它有效 - 在代码执行之前有 3000 毫秒的延迟,它为我解决了一个问题。

但是,当我进入 google chrome 上的 Javascript 控制台时,每次执行此函数时,我都会看到 Uncaught TypeError: window.setTimeout(...) is not a function

以下是我的代码的最小化版本:

<script>
window.setTimeout(function() {

    function eventHandler(e) {
        //Code here
    }

        //Code here
        item[i].addEventListener("event", eventHandler, false);

    }
}, 3000)();
</script>

任何想法为什么会引发此错误或如何修复?

提前谢谢你!

【问题讨论】:

  • 删除最后的 () (你试图调用 setTimeout() 的返回值,就好像它是一个函数,但是 afaik 它是一个数字)((这也是你为什么'看到“window.setTimeout(...) 不是一个函数”,而不是“window.setTimeout 不是一个函数”))
  • @ChrisG 你让我开心了 XD

标签: javascript html settimeout google-tag-manager


【解决方案1】:

基本上是因为window.setTimeout返回一个标识符号并且不返回一个函数,所以将你的window.setTimeout调用替换为:

<script>
var id = window.setTimeout(function() {

    function eventHandler(e) {
        //Code here
    }

        //Code here
        item[i].addEventListener("event", eventHandler, false);

    }
}, 3000);
</script>

【讨论】:

    猜你喜欢
    • 2016-12-09
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 2022-06-26
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多