Javascript 在有源代码时使用HTML脚本标记进行编码

Javascript 在有源代码时使用HTML脚本标记进行编码,javascript,html,Javascript,Html,我注意到,标记不允许您在其中使用JavaScript,例如: <script src="myFile.js"> alert( "This is a test" ); </script> 这是为了让我能够快速有效地将脚本添加到DOM中,所以我尝试这样做: <script src="script/addScript.js"> addScript( "script/obj.js" ); addScript( "script/home/log

我注意到,
标记不允许您在其中使用JavaScript,例如:

<script src="myFile.js">
    alert( "This is a test" );
</script>
这是为了让我能够快速有效地将脚本添加到DOM中,所以我尝试这样做:

<script src="script/addScript.js">
    addScript( "script/obj.js" );
    addScript( "script/home/login.js" );
</script>

addScript(“script/obj.js”);
addScript(“script/home/login.js”);
但它不起作用,所以我不得不这样做:

<script>
    addScript( "script/obj.js" );
    addScript( "script/home/login.js" );
</script>

addScript(“script/obj.js”);
addScript(“script/home/login.js”);

脚本元素加载单个脚本

它可以通过URL或内联方式实现这一点,但它仍然加载一个脚本;它不能同时使用两种类型的源

如果尝试同时包含这两个脚本,将忽略内联脚本:

<script src="example.js">
    this_is_ignored();
</script>

这个被忽略了();
…因此您需要多个脚本元素

<script src="example.js">
</script>
<script>
    this_is_NOT_ignored();
</script>

这一点没有被忽略();

值得注意的是,script元素的内容仍将存在于DOM中,因此有些人使用它来存储
src
引用的JS将读取的数据<代码>数据-*属性(可以说)是一种更干净的方法。

每个
元素包含一段可执行javascript代码。如果使用
src
属性加载外部文件,则该文件是该元素的可执行js片段,否则它是放置在
标记之间的代码。如果您尝试同时执行这两种操作,那么您将尝试将两段可执行代码关联到一个脚本元素,而这不是脚本元素的行为,因此浏览器的javascript引擎将忽略内联代码并执行包含的文件代码

至于为什么会出现这种情况,很可能是制定本标准的人的设计选择。通过在代码段和
元素之间创建一对一的关系,就不会对运行的代码或其优先级产生歧义

因此,在您的情况下,您必须首先加载外部文件

然后调用它提供的任何函数


addScript(“script/obj.js”);
addScript(“script/home/login.js”);


作为参考,这通常是在网页中加载所有javascript库的方式。

因此,在我的
addScript.js
示例中,它将脚本加载到DOM中,标记中的任何内容都会被覆盖,而不会为实际加载的脚本腾出空间。另外,脚本标记是同步的,因此,即使您能够在一个标记中添加并运行,当您调用其中的函数时,您的fie也不会准备就绪。至少我是这么认为的。文本内容作为普通文本节点添加到DOM中,但它没有被视为脚本,因为元素从URL获取了脚本。
<script src="example.js">
</script>
<script>
    this_is_NOT_ignored();
</script>