在JavaScript中,判断一个<script>
标签是否已经载入可以通过多种方式实现。以下是一些常见的方法:
async
属性,脚本将在下载时并行于其他资源,下载完成后立即执行。defer
属性,脚本将在文档解析完成后,但在DOMContentLoaded
事件触发前执行。src
属性引用的外部JavaScript文件。src
属性引用的外部JavaScript文件。<script>
元素。<script>
元素。load
事件var script = document.createElement('script');
script.src = 'path/to/script.js';
script.onload = function() {
console.log('Script has been loaded');
};
document.head.appendChild(script);
readystatechange
事件(适用于IE)var script = document.createElement('script');
script.src = 'path/to/script.js';
script.onreadystatechange = function() {
if (this.readyState == 'complete' || this.readyState == 'loaded') {
console.log('Script has been loaded');
}
};
document.head.appendChild(script);
function loadScript(url) {
return new Promise((resolve, reject) => {
var script = document.createElement('script');
script.src = url;
script.onload = resolve;
script.onerror = reject;
document.head.appendChild(script);
});
}
loadScript('path/to/script.js')
.then(() => console.log('Script has been loaded'))
.catch(error => console.error('Failed to load script', error));
问题:脚本加载失败或未执行。 原因:
解决方法:
application/javascript
)。通过上述方法,可以有效判断和处理JavaScript脚本的加载问题。
领取专属 10元无门槛券
手把手带您无忧上云