Spaces:
Running
Running
Upload result.html
Browse files- result.html +18 -11
result.html
CHANGED
|
@@ -323,9 +323,22 @@
|
|
| 323 |
}
|
| 324 |
}
|
| 325 |
|
| 326 |
-
function loadImg(imgId, skId, b64
|
| 327 |
-
img
|
| 328 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 329 |
}
|
| 330 |
|
| 331 |
// ── Lightbox (ดูรูปเต็ม) ──
|
|
@@ -366,14 +379,8 @@
|
|
| 366 |
try {
|
| 367 |
resultData = JSON.parse(raw);
|
| 368 |
document.getElementById('main-content').style.display='flex';
|
| 369 |
-
loadImg('orig-img','sk-orig', resultData.orig_b64);
|
| 370 |
-
loadImg('result-img','sk-result', resultData.orig_b64);
|
| 371 |
-
document.getElementById('result-img').onload = () => {
|
| 372 |
-
// รอให้ browser วาดภาพลง DOM จริงๆ ก่อน
|
| 373 |
-
requestAnimationFrame(() => {
|
| 374 |
-
requestAnimationFrame(() => initSlider(resultData));
|
| 375 |
-
});
|
| 376 |
-
};
|
| 377 |
applyLang(currentLang);
|
| 378 |
renderDynamic();
|
| 379 |
} catch(e) {
|
|
|
|
| 323 |
}
|
| 324 |
}
|
| 325 |
|
| 326 |
+
function loadImg(imgId, skId, b64, onDone) {
|
| 327 |
+
const img = document.getElementById(imgId);
|
| 328 |
+
const sk = document.getElementById(skId);
|
| 329 |
+
// set onload BEFORE src เพื่อไม่ให้ miss event
|
| 330 |
+
img.onload = () => {
|
| 331 |
+
if (sk) sk.style.display = 'none';
|
| 332 |
+
img.style.display = 'block';
|
| 333 |
+
if (onDone) requestAnimationFrame(() => requestAnimationFrame(onDone));
|
| 334 |
+
};
|
| 335 |
+
img.src = 'data:image/jpeg;base64,' + b64;
|
| 336 |
+
// กรณีที่ browser cache ภาพไว้แล้ว onload จะไม่ fire → เช็คด้วย complete
|
| 337 |
+
if (img.complete && img.naturalWidth > 0) {
|
| 338 |
+
if (sk) sk.style.display = 'none';
|
| 339 |
+
img.style.display = 'block';
|
| 340 |
+
if (onDone) requestAnimationFrame(() => requestAnimationFrame(onDone));
|
| 341 |
+
}
|
| 342 |
}
|
| 343 |
|
| 344 |
// ── Lightbox (ดูรูปเต็ม) ──
|
|
|
|
| 379 |
try {
|
| 380 |
resultData = JSON.parse(raw);
|
| 381 |
document.getElementById('main-content').style.display='flex';
|
| 382 |
+
loadImg('orig-img', 'sk-orig', resultData.orig_b64);
|
| 383 |
+
loadImg('result-img', 'sk-result', resultData.orig_b64, () => initSlider(resultData));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 384 |
applyLang(currentLang);
|
| 385 |
renderDynamic();
|
| 386 |
} catch(e) {
|