用上图的方式使用没有问题
但是用append标签的方式就会报错,initNECaptcha undefined。
append的script标签是异步执行的?
用上图的方式使用没有问题
但是用append标签的方式就会报错,initNECaptcha undefined。
append的script标签是异步执行的?
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
首先回答你的问题,append的script标签是异步执行的? 答案是看情况,可以异步,默认同步。 但是从你的代码中看是同步。
那么为什么同步会造成你的“异步的”错觉呢?
原因在于浏览器请求下载js这个网络IO操作是异步的。 代码下载完成,返回到浏览器的时候,不加异步属性的话,就会阻塞浏览器渲染同步执行。刚才说了请求下载js这个网络IO操作是异步的,因此代码再去请求下载js文件的时候,你的初始化代码已经执行了,那么很显然代码会报错。
因此要想解决你的问题,你需要将初始化代码写到script的onLoad事件中去。
希望我的回答对你有帮助。 我的个人主页是https://azl397985856.github.io/ , 掘金主页 https://juejin.im/user/58af98...