-1
長話短說,我有一個圖像作爲字符串存儲在數據庫中。然後我在一個jcarousellite傳送帶上顯示圖像。當用戶點擊圖片時,它會在Lightbox中彈出。當圖像顯示在旋轉木馬中時,它會完美呈現整個圖像(旋轉木馬中的圖像尺寸要小得多)。單擊圖像時,它只會渲染IE中圖像的前10個(ish)像素。我知道IE和數據URI有32kb的限制。有沒有辦法解決這個問題,並能夠正確顯示圖像?即32kb限制到數據uri
如果您需要任何源代碼,我很樂意提供一些。
感謝, ZS
編輯
var oDataQuery = /*Query*/
var carouselul = $("#carousel-ul");
var parentBody = window.parent.document.getElementsByTagName("body")[0];
var outterDiv = document.createElement("div");
// Execute the OData query for the images
$.getJSON(oDataQuery, function (data) {
var results = data.d.results;
// Add the results to the carousel ul
for (var i = 0; i < results.length; i++) {
var noteId = results[i].AnnotationId;
var noteSubject = results[i].Subject;
var src = "data:" + results[i].MimeType + ";base64," + results[i].DocumentBody;
var li = document.createElement('li');
var ahref = document.createElement('a');
ahref.href = '#';
ahref.addEventListener('click', function() { return false; });
var img = document.createElement('img');
img.src = src;
img.width = '100';
img.height = '100';
img.style.border = '1px solid';
img.style.margin = '1px';
img.addEventListener('click', function() { $("#img" + noteId, window.parent.document).trigger('click'); });
ahref.appendChild(img);
li.appendChild(ahref);
carouselul.append(li);
var innerDiv = document.createElement("div");
innerDiv.id = "div" + noteId;
var img2 = "<a href='" + src + "' data-title='" + noteSubject + "' id='" + noteId + "' data-lightbox='images'><img id='img" + noteId + "' src='";
img2 += src;
img2 += "' width='100' height='100' style='border: 1px solid; margin: 1px; visibility: hidden' alt='";
img2 += noteSubject + "' /></a>";
innerDiv.innerHTML = img2;
outterDiv.appendChild(innerDiv);
tempID = "img" + noteId;
}
var oHead = window.parent.document.getElementsByTagName('head')[0];
var cssNode = document.createElement('link');
cssNode.type = 'text/css';
cssNode.rel = 'stylesheet';
cssNode.href = '/{635457923130000051}/WebResources/ta_lightbox';
oHead.appendChild(cssNode);
parentBody.appendChild(outterDiv);
// Wire-up jCarouselLite to the carousel div
$("#carousel").jCarouselLite({
btnNext: "#next",
btnPrev: "#prev",
circular: false
});
我知道代碼看起來有點瘋狂,但我在iframe呈現的圖像,然後它需要的iframe之外展示燈箱。 (這是所有在同一臺服務器上,所以我知道這所有的作品就好了,它只是像只呈現只有排名前10位(ISH)像素。
以下兩種功能由客戶端所產生的全尺寸圖像的數據URI或正在被髮送服務器?另外,你需要支持多遠的IE瀏覽器? (請說IE10 +讓世界變得更美好) – 2014-09-19 15:14:12
它正在客戶端生成。我只需要支持10+(感謝上帝) – 2014-09-19 15:22:25
請提供生成它的代碼;爲避免此問題,您需要沿着_Blob_和'URL.createObjectURL'路徑(如果您想要'')或使用'