要防止加载同一个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的样式。
相关文章