0

我对 JavaScript 真的很陌生。所以这可能是一个基本问题?如果可能的话,我想要一些解释。

我正在做一些有 JS 的 Web 开发。但是,我要求所有文件(JS 和 CSS)都必须通过外部工作表链接,并且具有有意义的复杂功能,但是对于一些简单的 JS,我对这意味着什么有点困惑。

使用 CSS,您可以进行内联样式,或在样式标签的标题中,或在外部工作表中。有一些 JS 交互,我不知道它是否必须在它的位置,或者是否有办法将它移动到外部工作表。

例如,这个基本的“灯泡开/关”

这里的 js 是 onclick=document.getElementById(...) (通过单击/按钮更改图像)

这种代码东西甚至可以放在外部工作表中吗?我对内联/标签/外部 CSS 的内部类比是否也适用于 Javascript,还是 JS 的工作方式不同?我只是不想因为没有把东西放在正确的地方而被忽视。

4

2 回答 2

1

您需要了解的是,当您使用 JavaScript 时,您正在使用的“范围”是用户的视口。内部表示为对象树,我们称之为 DOM(文档对象模型)。浏览器获取这些外部工作表、JavaScript 文件、html 等,然后将它们加载到 DOM 中。

JavaScript 只关心一件事:操作 DOM。根据您的 JavaScript 何时执行,它会以当时的状态操作 DOM。

程序员选择执行代码的通常时刻是在 DOM 就绪之后。这是一个时刻,在此之后所有外部代码/样式等已被获取并初始化到 DOM 中,因此让您可以确定您的代码正在针对您也会看到的全部内容范围工作在加载后立即浏览页面时。

放大您关于将代码放入外部文件的问题:当然,这是可能的。在某一时刻,该文件将被导入并加载到 DOM 中。里面的代码会在这个文件被加载的时候执行,或者当你挂接到 DOM-ready 事件来启动这个文件里面的代码时。

于 2018-08-06T11:53:40.543 回答
0

您在这里有一个合理的问题(对您的意见表示歉意 - 但您可以尝试一下!)。

这是来自 Mozilla 开发者页面 ( https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics )

接下来,在您的 index.html 文件中,在结束标记之前的新行中输入以下元素:

<script src="scripts/main.js"></script>

这基本上与 CSS 的元素做同样的工作——它将 JavaScript 应用于页面,因此它可以对 HTML 产生影响(连同 CSS,以及页面上的任何其他内容)。

在您编写的示例代码onclick=document.getElementById(...)中。

这实际上应该写成

onclick=function() {
   document.getElementById(...)...
}
于 2018-08-06T12:01:38.523 回答