Javascript 获取“美元”“未定义”;在jQuery之后加载的脚本中

Javascript 获取“美元”“未定义”;在jQuery之后加载的脚本中,javascript,jquery,html,Javascript,Jquery,Html,我有一个简单的代码,首先加载jQuery,然后加载使用$syntax的脚本。但我总是会 ReferenceError:$未定义 首先,我认为这是因为script标记上的async属性被设置为async,但这没有什么区别 Html: <script async="false" crossorigin="anonymous" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" src="https://code.jqu

我有一个简单的代码,首先加载jQuery,然后加载使用$syntax的脚本。但我总是会

ReferenceError:$未定义

首先,我认为这是因为script标记上的async属性被设置为async,但这没有什么区别

Html

<script async="false" crossorigin="anonymous" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" src="https://code.jquery.com/jquery-3.4.1.js" type="application/JAVASCRIPT"></script>

<script async="async" src="/SCRIPT/Creator/Creator.js" type="application/JAVASCRIPT"></script>
$(document).ready(() => {
  function CloseModalBackground() {
    ....
  }
});

//# sourceMappingURL=Creator.js.map
演示问题的实时片段:


//jQuery*现在应该已经定义了,对不对
console.log(typeof$);

删除脚本标记上的async属性对我来说很有效

编辑:是的,不管为async属性分配了什么值,一旦它出现,脚本将被异步调用

$(文档).ready(函数(){
警报(“你好,世界!”);
});
为了阐明删除
异步
属性的原因,它是一个布尔属性,并且根据:

许多属性是布尔属性元素上存在布尔属性表示真值,不存在该属性表示假值。如果属性存在,其值必须是空字符串或与属性规范名称匹配的ASCII不区分大小写的值,没有前导或尾随空格

因此
async=false
,其中
async
是一个布尔属性,仍然意味着布尔属性是真实的,因为该属性存在。属性中包含的内容实际上并不重要,但为了避免混淆,如果它有值,则该值应该是属性的名称或空字符串


在这一点上存在误导。修正了,谢谢安德鲁·科特雷尔。要真正使
async
被视为false,唯一的方法是确保该属性在脚本元素上根本不存在。

检查浏览器的网络开发工具控制台,查看脚本是否正在加载,以及问题是以什么顺序
async
是否已尝试完全删除该async属性?我不认为虚假的事实使它成为虚假的。它只是关心它是否在那里。@zero298是的,你说得对。我删除了整个属性,效果很好,谢谢!我想我可以设置async=“false”,但我想我必须删除该属性