1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| <!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://sources.disruptive-innovations.com/jscssp/trunk/cssParser.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/cas">
/* Code CAS simple : les div ont la classe working, qui colore le texte en rouge */
div
{
class: working;
}
</script>
<style>
.working
{
color: red;
}
</style>
</head>
<body>
<div>Hello World !</div>
<script type="text/javascript" >
$(document).ready(function()
{
//parser le code CAS somehow
var sheets = parse_cas();
//pour chaque règle css, on ajoute les attributs
for (s in sheets)
{
var rules = sheets[s].cssRules;
for (r in rules)
{
var rule = rules[r];
var rule_selector = rule.mSelectorText;
for (d in rule.declarations)
{
var rule_attrib = rule.declarations[d].property;
var rule_value = rule.declarations[d].valueText;
//Cette ligne est la clef ! On utilise le sélecteur de JQuery
//pour trouver les éléments et attr() pour changer leurs attributs
$(rule_selector).attr(rule_attrib, rule_value);
}
}
}
function parse_cas()
{
var parser = new CSSParser();
sheets = Array();
$('script[type="text/cas"]').each(function()
{
sheets.push(parser.parse($(this).get(0).innerHTML, false, true));
});
return sheets;
}
});
</script>
</body>
</html> |
Partager