我有以下z.js
方法將樣式應用動態,以這樣的DOM元素:如何動態應用base64編碼的數據uri?
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
謝謝大家對你的幫助提前!
我知道IE8有32KB的限制..雖然版本9和以上沒有這個限制。圖像的任何部分顯示或完全不顯示?我已經看到過,只有圖像的一部分顯示它太大了。 – sachleen
不,它根本沒有出現.. 我認爲有一些關於換行包含的內容。 如果沒有任何編輯器強制換行,就會出現33kb長的數據 - uri。 但它並未出現在任何瀏覽器中! –