【问题标题】:JavaScript function undefined IE11JavaScript 函数未定义 IE11
【发布时间】:2018-02-08 01:28:49
【问题描述】:

我正在尝试将 JavaScript 函数导入我的 HTML 文档。它可以在 Chrome 上运行,但是在 IE11 中它返回的“aFunction”是未定义的。

我已阅读大量帮助主题,但仍无法找到解决方案。

我的代码如下。

索引.html

<head>...
<script  type="text/javascript" src="test.js"></script>
<script type="text/javascript">
        $(document).ready(function() {
                var myFunction = aFunction();
                //print to console to see if variable has anything in it
                console.log(myFunction);
            });
</script>
...</head>

test.js

function aFunction(){ //some code... }

任何想法将不胜感激。

【问题讨论】:

标签: javascript jquery html internet-explorer undefined


【解决方案1】:

如果您希望您的代码在 IE11 中运行,您应该使用 Babel 进行转译。

【讨论】:

    【解决方案2】:

    您犯了一个错误:您调用 aFunction 而不是将其分配给 myFunction。 您需要通过以下方式更改您的代码:

    var myFunction = aFunction;
    //print to console to see if variable has anything in it
    console.log(myFunction);
    //now you can call your aFunction using myFunction var
    myFunction();
    

    更新:

    你得到 undefined 是因为 aFunction 没有返回值:在这种情况下,返回值是'undefined'。使用“var myFunction = aFunction();”您将 aFunction 的结果(未定义)分配给 myFunction,即您在控制台上获得的值。

    【讨论】:

    • 不,他要调用函数并打印返回值。
    • @Barmar:他得到 undefined 只是因为 aFunction 没有返回任何东西。如果他在 aFunction 中放了一个返回值,它的代码甚至在 IE11 中也可以工作:他不需要使用 Babel:你可以试试。他将其 var myFunction 称为 myFunction,因此他似乎想将 aFunction 分配给 myFunction var,而不是执行它。
    • 他的函数包含一个模板文字,因此当他尝试定义它时遇到语法错误,因为 IE11 没有模板文字。这就是没有定义函数的原因。
    • @Barmar 好的,现在我看到他写了模板文字来回答他的问题:我的答案与他在原始答案中写的代码是正确的。
    • 您的回答没有解释为什么他会收到错误消息aFunction is undefined。它只是试图打印一些不同的东西。
    猜你喜欢
    • 2018-01-14
    • 2011-05-21
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多