javascript - 如何检查 head 中是否包含 css/js 资源

标签 javascript html css

<head>
  <link rel="stylesheet" type="text/css" href="mystyle.css">
  <script src="myscript.js"></script>
</head>

我想要一个函数来检查头部中是否包含资源

checkIfHeaderHas('myscript.js'); // would return true
checkIfHeaderHas('mystyle.css'); // would return true
checkIfHeaderHas('mybla.css'); // would return false

但我想知道如何在文件头中搜索文件名? (如果是 javascript,则在“src”中;如果是 css,则在“href”中)

最佳答案

我做了一个小函数来做你想要的。它遍历所有 <link><script>元素,直到找到具有该名称的脚本。如果不是,则返回 false。

function checkIfIncluded(file) {
    var links = document.getElementsByTagName("link");
    for(var i = 0; i < links.length; i++) {
        if (links[i].href.substr(-file.length) == file)
            return true;
    }

    var scripts = document.getElementsByTagName("script");
    for(var i = 0; i < scripts.length; i++) {
        if (scripts[i].src.substr(-file.length) == file)
            return true;
    }

    return false;
}

console.log(checkIfIncluded("mystyle.css"));
console.log(checkIfIncluded("myscript.js"));
console.log(checkIfIncluded("mybla.css"));
​

Live example

请注意,这不仅会在 <head> 中查找资源,但在整个文档中。如果您真的需要查看头部内部,请告诉我,我们会想出别的办法。

关于javascript - 如何检查 head 中是否包含 css/js 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10419414/

相关文章:

javascript - 为什么 jQuery 的行为与 javascript 不同?

javascript - Mapbox - 在页面上滚动时防止 map 缩放

html - 我如何知道 HTML 何时已完全呈现

javascript - 如何设置相互影响的复选框组

css - 您可能需要适当的加载程序来处理此文件类型,目前没有配置加载程序来处理此文件。”

Javascript拖放同一对象的多个实例

javascript - 动态(2 级)Javascript/CSS 加载 IE6

javascript - 我正在尝试使用 jquery 切换 div,但我用 Div1 替换的 Div2 已经在屏幕上可见。我该如何解决?

javascript - 为什么我的 IFRAME 不适合其容器 DIV 一对一?

jquery - 使用 jQueryUI .resizable 来反向调整两个或多个元素的大小