【问题标题】:Fail to execute JavaScript from HTML file - document not defined无法从 HTML 文件执行 JavaScript - 未定义文档
【发布时间】:2017-09-11 22:21:03
【问题描述】:

我无法从 HTML 文件调用 JavaScript 文件。

test.html:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <script  src='http://code.jquery.com/jquery-3.2.1.min.js'</script> 
    <script type='text/javascript' src='test.js' </script>
    <script>theTest(); </script>
</head>
<body>
    <div id="myTest" style="position:relative;width:600px;height:400px;"></div>
</body>
</html>

test.js:

function theTest()
{
    var they = 2;
    console.log(they);
    alert(they);
};

document.getElementById('myTest').innerHTML;

我收到了:

ReferenceError: 文档未定义

【问题讨论】:

  • 看看this answer
  • @julekgwa: 抱歉,你的错字是什么意思?
  • 您的 jQuery &lt;script&gt; 标记中缺少的 &gt; 是这里的错字还是在您的原始代码中?
  • ^ 更好的是,在三个 &lt;script&gt; 标签中,只有 一个 被正确关闭。
  • @freginold jQuery 和 test.js。

标签: javascript html


【解决方案1】:

您在浏览器生成#myTest 元素之前调用theTest();,甚至开始构建页面,因此该函数没有任何作用。将第三个 script 标记向下移动到 body 元素的末尾,它应该可以正常工作。看这个例子:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <script src='http://code.jquery.com/jquery-3.2.1.min.js'></script> 
    <script type='text/javascript' src='test.js'></script>
</head>
<body>
    <div id="myTest" style="position:relative;width:600px;height:400px;"></div>
    <script>
        theTest();
    </script>
</body>
</html>

【讨论】:

  • H,谢谢,但我仍然收到有关找不到文档的错误。让我提醒您,我想调用执行 html 文件的 javascript 文件,而不是相反。
  • 但是该函数没有调用任何页面元素。
  • @George 你在哪里从你的 JavaScript 文件中加载 HTML 文件?
  • @George 那行代码实际上什么也没做。您正在获取 myTest 元素的 HTML 内容,但您没有保存、更改它、对其进行任何操作等。例如,document.getElementById('myTest').innerHTML = "Hello world!" 将设置 HTML。 var myHtml = document.getElementById('myTest').innerHTML; 会将其存储为变量。但这条线本身没有任何意义。
  • @freginold:node test.js
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-09
  • 2014-06-07
  • 1970-01-01
  • 2023-04-06
  • 2015-12-12
  • 2014-03-14
相关资源
最近更新 更多