z.js
次のようにDOM要素にスタイルを動的に適用する次の方法があります。
z.Utils.applyStyle(element,'background-image:stamp.gif')
z.Utils.applyStyle
関数は次のとおりです。
z.Utils.applyStyle = function(elRef,style)
{
if(typeof(elRef) == 'string')
{
elRef = document.getElementById(elRef);
}
if(elRef == null || style == null || elRef.style == null)
{
return null;
}
style=style.replace(/\_/g,'-').toLowerCase();
var pairs = style.split(";");
for(var ii =0; ii < pairs.length; ii++)
{
var kv = pairs[ii].split(":");
// trim value
if(!kv[1])
{
continue;
}
var value = kv[1].replace(/^\s*/,'').replace(/\s*$/,'');
var key = "";
for(var jj = 0; jj < kv[0].length; jj++){
if(kv[0].charAt(jj) == "-")
{
jj++;
if(jj < kv[0].length)
{
key += kv[0].charAt(jj).toUpperCase();
}
continue;
}
key += kv[0].charAt(jj);
}
switch(key)
{
case "float":
key = "cssFloat";
break;
case "right":
key="left";
value=value-z.Utils.getElementOffset(elRef).width;
break;
case "bottom":
key="top";
value=value-z.Utils.getElementOffset(elRef).height;
break;
}
try
{
elRef.style[key] = value;
}
catch(e)
{
//some error thrown;
}
}
return true;
};
上記の関数を使用してデータ uri を背景画像として適用したい場合はどうすればよいですか? 何かのようなもの:
z.Utils.applyStyle(element,'background-image: url(data:image/gif;base64,[base64-code])');
37Kの画像でやったのですが、うまくいきませんでした。
私は何を間違えましたか?
動的割り当てでデータ uri を使用できない可能性がありますか?
おそらく大きな 30k+ サイズの base64 データが原因ですか? 問題のある css は、http: //bookingshare.fw.hu/data_uri_long.css
で確認できます。
事前にご協力いただきありがとうございます。