我想从页面获取单个CSS文件,所以我这样做:
let sheets = window.document.styleSheets;
var mysheet = Array.from(sheets).filter(mysheet =>
mysheet.href == PAGERL+'/css/my_wanted_file.css');
结果,我获得了“ my_wanted_file.css”文件的完整路径。
现在我有这种情况,原因是重新加载功能,所需文件的名称看起来像"my_wanted_file.css?t=timestamp"
我在上面的代码中需要更改的内容是,无论是否包含“?t = timestamp”部分,此代码都将输出所需的文件?
非常感谢。
答案 0 :(得分:2)
如果您对完整 URL不感兴趣的话,就不要看href
了吗??
JavaScript为您提供了一种仅查看https://developer.mozilla.org/en-US/docs/Web/API/URL#Properties
的URL的特定部分的方法。mysheet.pathname == '/css/my_wanted_file.css'
答案 1 :(得分:1)
尝试使用OR
||运算符:
var mysheet = Array.from(sheets).filter(mysheet =>
{
return mysheet.href == PAGERL+'/css/my_wanted_file.css'
|| mysheet.href == '/css/my_wanted_file.css'
});
更新:
如果要检查数组是否包含诸如/css/my_wanted_file.css
或/css/my_wanted_file.css?t=timestamp
之类的值:
let timestamp = 'yourTimeStamp Here';
var mysheet = Array.from(sheets).filter(mysheet =>
{
return mysheet.href == PAGERL+'/css/my_wanted_file.css'
|| mysheet.href == PAGERL+`/css/my_wanted_file.css?t=${timestamp}`
});
答案 2 :(得分:1)
经过很多好的建议,我决定以一种简单的方式解决问题。
用问号分隔网址,然后使用它:-)
if(mysheet.href!=undefined && mysheet.href.split('?')[0] == PAGERL+'/css/my_wanted_file.css'){ return mysheet.href; }
仅此而已;-)
答案 3 :(得分:0)
将querySelector
与包含attribute selector一起使用
document.querySelector('link[href*="/css/my_wanted_file.css"]')