Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 方法来检查应用了什么样式表_Javascript_Html_Css - Fatal编程技术网

Javascript 方法来检查应用了什么样式表

Javascript 方法来检查应用了什么样式表,javascript,html,css,Javascript,Html,Css,问题是:我想看看哪个样式表在文档中具有优先权 建议:添加一个在所有样式表中具有相同名称且具有唯一值的类。将此类应用于文档末尾的一个DIV,然后查看应用了哪个值 守则: HTML: JS: 这里检查颜色值,结果确定哪个样式表优先。结果将添加到“document”对象中的自定义值,以便在执行函数后可以引用该值。这对我来说是一个新的想法,因此希望得到反馈,我的理由是文档对象不会被删除,因此可以始终被引用。这样,函数只需执行一次,就可以在不接触DOM的情况下连续查找其值。这提供了一个低于0毫秒的查找时间

问题是:我想看看哪个样式表在文档中具有优先权

建议:添加一个在所有样式表中具有相同名称且具有唯一值的类。将此类应用于文档末尾的一个DIV,然后查看应用了哪个值

守则:

HTML:

JS:

这里检查颜色值,结果确定哪个样式表优先。结果将添加到“document”对象中的自定义值,以便在执行函数后可以引用该值。这对我来说是一个新的想法,因此希望得到反馈,我的理由是文档对象不会被删除,因此可以始终被引用。这样,函数只需执行一次,就可以在不接触DOM的情况下连续查找其值。这提供了一个低于0毫秒的查找时间,onload的初步执行时间在0到1或2毫秒的范围内。我现在只使用了date功能来衡量这一点

function checksheet(){
    var ac1 = document.getElementById('sheetValue');
    if (window.getComputedStyle(ac1,null).getPropertyValue("color") === "rgb(255, 255, 0)"){
        document.sheetType = "Yellow";
    }
    else if (window.getComputedStyle(ac1,null).getPropertyValue("color") === "rgb(0, 255, 0)"){
        document.sheetType = "Green";
    }
else if (window.getComputedStyle(ac1,null).getPropertyValue("color") === "rgb(255, 0, 0)"){
        document.sheetType = "Red";
    }
    else if (window.getComputedStyle(ac1,null).getPropertyValue("color") === "rgb(0, 0, 204)"){
        document.sheetType = "Blue";
    }
}

欢迎任何评论、反馈或直接解雇。

让我困惑的部分是您这样做的用例。从您提供的代码示例中可以看出,您在查询媒体属性的基础上包含了一个特定的css文件

虽然我不会在这里详细介绍媒体查询,但通过使用javascript screen.width、document.documentElement.clientWidth测量屏幕尺寸,可以轻松计算出您要实现的目标,这将是一个比检查计算出的css值好得多的解决方案。例如:如果计算出的颜色以十六进制返回会怎么样

虽然它在较旧的浏览器中不起作用,但也有window.matchMedia可以这样使用:

window.matchMedia('only screen and (min-device-width: 768px) and (max-device-width: 1991px)')

很好,这个问题的所有标题。但我错过了一个:“问题”。你到底有什么问题?您当前的代码以什么方式不工作?问题是我需要根据应用的样式表使用自定义解决方案。补充:如果添加到文档对象不被认为是不好的做法,我会创建一个“自定义”值并在其中添加任何自定义值,这样在搜索对象时对文档对象的任何调用都不会减慢。如果这是错误的,请更正我,这样可以防止文档对象混乱。@GolezTrol哦,同时,也主要由舆论来判断是否有人认为这是一种错误的做法。建设性批评:
function checksheet(){
    var ac1 = document.getElementById('sheetValue');
    if (window.getComputedStyle(ac1,null).getPropertyValue("color") === "rgb(255, 255, 0)"){
        document.sheetType = "Yellow";
    }
    else if (window.getComputedStyle(ac1,null).getPropertyValue("color") === "rgb(0, 255, 0)"){
        document.sheetType = "Green";
    }
else if (window.getComputedStyle(ac1,null).getPropertyValue("color") === "rgb(255, 0, 0)"){
        document.sheetType = "Red";
    }
    else if (window.getComputedStyle(ac1,null).getPropertyValue("color") === "rgb(0, 0, 204)"){
        document.sheetType = "Blue";
    }
}
window.matchMedia('only screen and (min-device-width: 768px) and (max-device-width: 1991px)')