如何加载无法加载的动态附加脚本?
How-to load a dynamically appended script that won't load?
动态附加的脚本从不加载:
const nodeTemplate = document.importNode(template.content, true)
const script = nodeTemplate.firstElementChild
script.removeAttribute('async')
script.setAttribute('defer', 'defer')
document.body.appendChild(nodeTemplate)
知道为什么吗?有没有办法强制加载?
我在这里和其他地方查看了不同的解决方案,none 似乎目前有效。
如果它发生在页面加载时,它工作正常。
我认为您需要检查它是否已加载,如果没有,最好从 DOM 中完全删除该脚本,然后创建新的 script
标签。
然后尝试这样的操作,这是注入脚本小部件的常见模式:
// 1. remove your old script
// 2. create new
(function(){
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = false;
s.defer = true;
s.src = "https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js";
document.getElementsByTagName('head')[0].appendChild(s);
})();
动态附加的脚本从不加载:
const nodeTemplate = document.importNode(template.content, true)
const script = nodeTemplate.firstElementChild
script.removeAttribute('async')
script.setAttribute('defer', 'defer')
document.body.appendChild(nodeTemplate)
知道为什么吗?有没有办法强制加载?
我在这里和其他地方查看了不同的解决方案,none 似乎目前有效。
如果它发生在页面加载时,它工作正常。
我认为您需要检查它是否已加载,如果没有,最好从 DOM 中完全删除该脚本,然后创建新的 script
标签。
然后尝试这样的操作,这是注入脚本小部件的常见模式:
// 1. remove your old script
// 2. create new
(function(){
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = false;
s.defer = true;
s.src = "https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js";
document.getElementsByTagName('head')[0].appendChild(s);
})();