1. 直接document.write
2. 动态改变已有script的src属性
3. 动态创建script元素
4. 通过AJAX动态加载
但是前三种是异步方式,不加判断的调用正在加载JS代码可能出错。
解决方法如下:
1. 对依赖的动态JS的操作加定时器去轮循判断是否为空,不为空往下执行,退出轮循。
2. 对依赖浏览器环境(比如querystring, 浏览器变量等)的JS动态加载。这些页面特点是,只在页面加载时会加载JS一次。解决方法是,先document.write操作把JS加载进来,然后再进行其他的依赖该JS操作。在这过程中,加载JS和操作必须处于不同<script>节中。