Javascript文件不会执行/运行

时间:2016-03-15 20:44:19

标签: javascript html

我正在尝试用javascript创建一个简单的网页。 HTML工作正常,但我无法运行javascript。我想知道是否有人可以告诉我它有什么问题?

html和javascript文件都在同一个文件夹中,我确保我没有做任何粗心的事情

以下是代码:

var intOne;
var intTwo;
var sec;


window.alert("Testing")
function checkAnswer()
{
  if(quiz.outer.answerbox.value === intOne+intTwo)
  {
    alert("You smart. You loyal.");
    alert("Answer is " + parseInt(intOne+intTwo));
  } else {
    alert("Another One.");
    quiz.outer.answerbox.value="";
  }

}

function displayQuestion()
{
  intOne = Math.floor((Math.random() * 100) + 1);
  intTwo = Math.floor((Math.random() * 100) + 1);
  document.getElementById('quiz.outer.question').innerText= "What is " + intOne + " + " + intTwo + "?";
  quiz.answerbox.value="";
  startTimer();
}

function startTimer()
{
  sec = 0;
  window.setInterval(updateTime(), 1000);
}

function updateTime()
{
  sec++
  timer.innerText=sec;
}
<!Doctype html>
<html>
  <head>
    <title>Adding Quiz</title>
    <script type="text/javascript" src="addingNumbers"></script>
  </head>
  <body onload="displayQuestion()">
    <h1>Adding Quiz<h1>
    <div style="color:blue">
      <form name="quiz" action="#">
        <p id="outer">
          <p id="question">something</p>
            <input type="output" id="answerbox" value=""><br>
            <input type="button" value="Check" onClick="checkAnswer()">
          </p>
    </div>
    <br>
    <p>Time spent on this question so far: <strong id="timer">0</strong> seconds </p>
  </body>
</html>

奇怪的是,当我发布代码片段时,javascript似乎正常工作,因为我在运行代码时收到了警告。

2 个答案:

答案 0 :(得分:1)

其他可能的答案,如果它是正确的路径,但无论如何都不会加载

  • 您有阻止javascript文件加载的内容,如NoScript,adblock或您已阻止脚本加载到您的浏览器首选项/设置中
  • 您的资源可能已被浏览器/服务器缓存,并且在您清除浏览器缓存之前,任何更改代码的尝试都没有任何不同
  • 如果服务器将content-type: text/plain标头添加到正在请求的脚本文件中,脚本将不会执行代码。即使您尝试添加type="text/javascript"
  • 您加载的页面也可能有一些Content Security Policy (CSP)标题阻止加载任何脚本文件
  • 如果它在iframe中,那么您可能会遇到sandbox属性
  • 的问题
  • <base>标记可以更改加载任何资源的位置(但看起来你的html代码判断没有这个问题)
  • 您甚至可能在某处删除了<script>代码...
  • 一个好的拇指规则是始终使用小写字母并使用-而不是adding-numbers.js而不是addingNumbers.js(也许某些服务器,文件系统,浏览器可能有问题区分小写/大写和处理他们不同)我使用git时遇到了问题...

如果您尝试直接在浏览器中打开脚本网址会发生什么情况? 尝试使用绝对路径,如果这有助于...
当然,使用控制台/网络选项卡来查找问题所在

我的猜测是,它只是找不到而且src="addingNumbers"是一条错误的路径 html和javascript文件是否都在同一个文件夹中?

答案 1 :(得分:0)

您的代码中存在错误,但这不会阻止其运行。

您正在调用方法updateTime并将其返回的内容分配给Interval

window.setInterval(updateTime(), 1000);

您需要删除()

window.setInterval(updateTime, 1000);

旁注,间隔时间不准确。如果您想知道为什么使用setInterval()不准确,请阅读this answer

现在你需要弄清楚文件没有加载的原因。为此,您需要查看控制台和网络选项卡。控制台将显示任何JavaScript错误,网络选项卡将显示是否未加载任何文件(未找到404)。正如其他人所指出的那样,您没有在脚本标记中包含文件扩展名。

<script type="text/javascript" src="addingNumbers.js"></script>