http://qlib.ucoz.ru/zoom.htm
UPD: только что попробовал поставить алерт после вызова Zoom() — его нет => браузер подвисает из-за бесконечного цикла. Как я понял, это из-за того, что images.length меняется из-за того, что я добавляю изображения динамически. Кэширование images.length помогло избавиться от бесконечного цикла, но эта строка всё равно не работает:
tip.innerHTML = '<img src="' + images[i].src + '" width="' + (images[i].offsetWidth * 2) + '" height="' + (images[i].offsetHeight * 2) + '" />';
(если добавлять через .appendChild(), то то же самое)
Консоль молчит.