这只加载 css 一次就好了。
if (filetype=="css" && !document.querySelector('.load_once') ) {
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
fileref.setAttribute("class", "load_once")
}
但是,相同的脚本不适用于 js 文件。
if (filetype=="js" && !document.querySelector('.load_once') ) {
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
fileref.setAttribute("class", "load_once")
}
我通过在函数触发后清空该函数来解决该问题,以便该函数仅触发一次。
但是,我仍然想了解为什么上面的脚本只适用于 css 文件而不适用于 js 文件。
我在这里做错了什么?
我不明白为什么这不起作用。
这是 JavaScript 的怪异之处之一吗? JavaScript 本身固有的某种错误?
编辑
请。请参阅下面我对 Borcuhin 评论的回复。
我的论点是红色的苹果或
红苹果!=红橙。
从逻辑上讲,我认为我上面的脚本应该有效;但事实并非如此!!
有人请解释/纠正我并让我知道javascript如何以及为什么对待/认为读苹果与红橙相同。
最佳答案
您可以像这样插入脚本标签:
var script = document.createElement('script');
script.setAttribute('src', '/script.js');
// put tag to the head
document.getElementsByTagName('head')[0].appendChild(script);
更新
您需要为每个文件包含使用不同的类。因为一旦您添加了类 some_class_name
的标签,选择器:document.querySelector('.some_class_name')
将找到 1 个元素。所以你只需要对js文件或其他文件使用some_other_class_name
,或者随机生成类名如果你可以有N
不同的文件
关于javascript - 为什么加载js一次就不行了,而css却可以呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44932608/