要防止加载同一个URL被多次执行,你可以在加载样式之前先检查是否已经存在相同URL的样式标签。如果已经存在,则不再重复加载。
以下是修改后的loadStyle方法,添加了对URL重复加载的检查:
loadStyle: function(url) { var existingStyles = document.querySelectorAll('link[rel="stylesheet"][href="' + url + '"]'); if (existingStyles.length > 0) { return; // 如果存在相同URL的样式标签,直接返回,不再重复加载 } var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; var head = document.getElementsByTagName('head')[0]; head.appendChild(link);}在上面的代码中,我们使用document.querySelectorAll方法来获取所有rel属性为stylesheet且href属性为指定URL的样式标签。如果获取到的结果长度大于0,说明已经存在相同URL的样式标签,直接返回,不再重复加载。
通过以上修改,你可以在调用loadStyle方法时避免多次加载同一个URL的样式。
相关文章