Открыть изображение в новом окне


Задача
По клику на ссылке с маленького изображения открывать увеличенное изображение в новом окне. Окно должно быть автоматически масштабировано размером с картинку.

Решение
В Templates/common.js добавляем javascript-функции следующего вида:

//Image popup
var win;
function ImagePopUp(url){ 
    if (url){
        url = "$ServerPath$" + url; 
        if (win) win.close(); 
        win = window.open('about:blank', '', 'width=300,height=300,status=0,toolbar=0,location=0,scrollbars=0,menubar=0,resizable=0');
        var d = win.document;
        d.write('<HTML><HEAD><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=windows-1251"></HEAD>');
        d.write('<BODY><IMG style="DISPLAY: none" src="'+url+'" onload=window.opener.resize()>');
        d.write('<TABLE id=maintable style="DISPLAY: block" height=300 width=300>');
        d.write('<TR><TD style="FONT: 10pt Tahoma" vAlign=center align=middle>Подождите, идет загрузка изображения...</TD></TR>');
        d.write('</TABLE></BODY></HTML>'); 
    }
}

function resize(){ 
    win.document.images[0].style.display = 'block'; 
    win.document.getElementById('maintable').style.display = 'none'; 
    var w = win.document.images[0].width+9; 
    var h = win.document.images[0].height+29; 
    win.resizeTo(w, h); 
    win.focus();
}

В ссылке с маленькой картинки мы указываем вызов функции javascript:ImagePopUp('путь к картинке').

Внимание, данный код приведен только как пример, демонстрирующий логику работы, в нем могут быть ошибки. Вы можете менять его под свои нужды.