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