javascript - JS 代码可以在控制台运行,不能像普通的 Web 代码一样运行

标签 javascript html

HTML 代码:

<div class="color-box yellow left margin-right" id="yellow-box">Yellow</div>
<div class="color-box black left margin-right" id="black-box">Black</div>     
<div class="color-box green left margin-right" id="green-box">Green</div>
<div class="color-box orange left margin-right" id="orange-box">Orange</div>
<div class="color-box red left margin-right" id="red-box">Red</div>

JS代码:

function addListeners()
    var colorList = document.getElementsByClassName('color-box');
    for (var i=0; i<colorList.length; i++){
        colorList[i].addEventListener('mousedown', mouseDown, false);
        window.addEventListener('mouseup', mouseUp, false);
    }
}

我调用的其他函数(mouseDown、mouseUp)并不重要。 上面的代码可以在控制台中运行,但作为正常的 Web 代码,该函数甚至不会进入 for 循环,因为 colorList 的长度为 0。

我尝试使用 console.log() 调试上述代码,并得出结论 colorList[0] 返回控制台中的第一个节点,但在正常的 Web 中代码未定义。

我尝试在其他查询中搜索我的问题,但我无法理解它们,因为我自己并不是一个经验丰富的程序员。从我的观察来看,那些程序员缺少分号等等。

最佳答案

尝试将 js 代码写在 body 标记的末尾

<script>
 //your code
</script>
</body>
</html>

或者你可以将其写在window.onload事件上

function addListeners() {
  var colorList = document.getElementsByClassName('color-box');
  for (var i=0; i<colorList.length; i++){
    colorList[i].addEventListener('mousedown', mouseDown, false);
    window.addEventListener('mouseup', mouseUp, false);
  }
}
window.onload = function(){addListeners()}

仅当窗口正确加载时才会调用该函数。

关于javascript - JS 代码可以在控制台运行,不能像普通的 Web 代码一样运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24239731/

相关文章:

html - 如何强制 ng-style 添加到现有样式?

javascript - 我可以在tensorflowjs中使用强化学习吗?

javascript - 在 React 和 Webpack 5 中使用 Web Worker

javascript - 对 Web API 的同步 JQuery 调用

html - Django/VueJS/PostgreSQL 添加前导/尾随空白选项卡

html - 我如何在侧边栏中制作带有两列的图像

javascript - 在 .bat 文件中嵌入 Javascript

javascript - 具有相同网址的多个“赞”按钮

javascript - 有什么方法可以将 session 存储中存储的文本作为文件附件下载到浏览器?

javascript - SetInterval Timeout - 变量结构重置超时