我希望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中是否有其他选择?
2条答案
按热度按时间eulz3vhy1#
您确定您的程式码会在网页载入后引发吗?尝试在
<body onload="someFunction()">
中的代码之后或在页面底部调用它2fjabf4q2#
在服务器端使用css解析器完成,并将列表传递给jsp页面。。并在所有现代浏览器上工作。
谢谢你的回复:)