ページの読み込み後に、1 つ少ないシート を読み込む方法があるかどうか疑問に思っています。This questionには、すべてのシートをリロードする方法を説明する回答がありますが、私のユースケースでは、既存のシートが新しくロードされたシートに依存することはなく、シートを遅延して追加するだけでよいでしょう。みたいなことを考えている
less.sheets.push(mySheet);
less.loadStyleSheet(mySheet);
可能性のある API を表す可能性がありますか? 乾杯、
コリン
2010 年 12 月 3 日更新:
私は Livingston Samuel による less.js コードベースの修正を試してみましたが、機能しているものの、既に読み込まれているスタイルシートの定義を認識しないようです。ここに私のサンプルファイルがあります
を。index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Simple</title>
<link rel="stylesheet/less" href="/static/less/style.less" id="abc123"/>
<script src="/static/js/less-1.0.40.js"></script>
</head>
<body>
<div id="container">
<div>Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</div>
</div>
<div id="abc"><div>Bingo</div></div>
</body>
<script>
console.log("loading new sheet");
less.loadStyleSheet("/static/less/style2.less", function() {
console.log("Loaded!");
});
console.log("called");
</script>
</html>
b. style.less
@primary_color: green;
.rounded(@radius: 5px) {
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
border-radius: @radius;
}
#container {
background: @primary_color;
.rounded(5px);
div {
color: red;
}
}
c. style2.less
#abc {
background: @primary_color;
.rounded(10px);
div {
margin: 2px;
color: blue;
}
}
したがって、2 番目のスタイルシートは遅延ロードされますが、style2.less で次の解析エラーが発生します。
".rounded は定義されていません"
.rounded は style.less で定義されており、そのシートをアンロードしていないので、現在の環境のコンパイラで引き続き使用できるはずだと考えていました。
別の言い方をすれば、新たに開始したり、既存の定義をアンロードしたりしたくはありませんが、既にロードされているスタイルに基づいて構築します。ありがとう、
コリン