是否有一种纯JavaScript方法来检索任何站点的所有断点或媒体要求?

是否有一种纯JavaScript方法来检索任何站点的所有断点或媒体要求?,javascript,media-queries,Javascript,Media Queries,我是JS新手,希望通过编程找到应用于当前网页的所有基于屏幕宽度的断点(至少所有媒体要求,包括最小或最大)。我是否需要将样式表解析为纯文本并以这种方式查找断点?或者有其他的方法吗 我已经研究过手动方法和半自动工具,它们可能有助于找到这些方法,但我希望通过编程执行纯JavaScript代码来找到当前加载网页的所有基于屏幕宽度的断点(至少是媒体查询) @media (min-width: 1281px) { //CSS } @media (min-width: 1025px) and (max-w

我是JS新手,希望通过编程找到应用于当前网页的所有基于屏幕宽度的断点(至少所有媒体要求,包括最小或最大)。我是否需要将样式表解析为纯文本并以这种方式查找断点?或者有其他的方法吗

我已经研究过手动方法和半自动工具,它们可能有助于找到这些方法,但我希望通过编程执行纯JavaScript代码来找到当前加载网页的所有基于屏幕宽度的断点(至少是媒体查询)

@media (min-width: 1281px) {
  //CSS
}
@media (min-width: 1025px) and (max-width: 1280px) {
   //CSS
}
@media (min-width: 768px) and (max-width: 1024px) {
  //CSS
}
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
  //CSS
}
@media (min-width: 481px) and (max-width: 767px) {
  //CSS 
}
@media (min-width: 320px) and (max-width: 480px) {
  //CSS
}
//e.g. credited https://gist.github.com/gokulkrishh/242e68d1ee94ad05f488
我希望输出所有屏幕宽度断点['320'、'480'、'481'、'767'、'768'、'1024'、'1025'、'1280'、'1281']。 谢谢您的建议。

访问。对它们进行循环,并从中获取规则。循环这些,过滤掉那些不是媒体规则的。然后您可以从每个文本中读取
conditionText

您需要解析条件文本以找到断点

Array.from(document.styleSheets).forEach(sheet=>{
Array.from(sheet.cssRules.forEach)(规则=>{
if(rule.type==CSSRule.MEDIA\u规则){
console.log(rule.conditionText);
}
});
});
@媒体(最小宽度:1281px){
身体{
背景:蓝色;
}
}
@介质(最小宽度:1025px)和(最大宽度:1280px){
身体{
背景:红色;
}
}
@介质(最小宽度:768px)和(最大宽度:1024px){
身体{
背景:绿色;
}

}
我想你需要使用正则表达式解析所有CSS和JS文件-但是有这么多插件和不同的方法,为了做到这一点,你真的需要确切地知道网站如何存储他们的媒体查询。非常好,我正确地假设我需要遍历所有样式表,但认为我需要将整个样式表解析为纯文本。再次感谢