我想为此获取css的规则并在下拉列表中显示。

var opnr = window.opener ;
function getStyle() {
    var selCss=opnr.document.getElementById("CSS");
    loadjscssfile("css/"+selCss.value,"css");
    var cssRef = document.styleSheets[0];
    cssRef.href ='css/'+ selCss.value;
    var classes = cssRef.rules || cssRef.cssRules ;
    var select = document.getElementById('stylefieldid');//document.createElement('select');

    for(var x=0;x<classes.length;x++) {
       var option = document.createElement('option');
       var className = classes[x].selectorText;
       if(className.startsWith('.')){
           className = className.substring(1,className.length);
       }
          option.text = className;
          option.value = className;
       select.add(option);
    }
}


function loadjscssfile(filename, filetype){
    var fileref;
    if (filetype=="js")
    {
        fileref=document.createElement("script");
        fileref.setAttribute("type","text/javascript");
        fileref.setAttribute("src", filename);
    }
    else if (filetype=="css"){
        fileref=document.createElement("link");
        fileref.setAttribute("rel", "stylesheet");
        fileref.setAttribute("type", "text/css");
        fileref.setAttribute("href", filename);
    }
    if (typeof fileref!="undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref);
}


但这显示了突然的行为,有时classes变量有时会不确定,而有时却有值...我试图提醒cssRef.href 它给了我正确的值。

该代码在FF上根本不起作用

任何帮助吗?为什么会这样发生

在jQuery中有其他选择吗?

最佳答案

您确定页面加载后会触发代码吗?尝试在<body onload="someFunction()">中或页面底部的代码后调用它

关于javascript - 在javascript/jquery中获取CSS规则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4883129/

10-12 07:12