пятница, 9 октября 2009 г.

IE6 и img.src, дубль №2

Internet Explorer продолжает преподносить сюрпризы.
Исходные данные все те же, что и в предыдущем посте — делаем динамическую галерею, через JavaScript меняем атрибут src у тега "img".
Но теперь появилась еще одна любопытная проблема — при изменении картинки высота страницы начинает увеличиваться, и появляется пустое место. Проиллюстрировать это можно примерно так:






По сути к высоте страницы добавляется разница в размере между текущей и предыдущей картинками.

Решение, как обычно, весьма очевидное. После изменения src изображения нужно сделать следующее:

document.body.innerHTML += '';

Полностью код будет выглядеть так:

var image = document.getElementById('img');
image.src = 'image2.jpg';
document.body.innerHTML += '';

Продолжаю собирать глюки IE и способы их решения.
Что, кстати, отчасти сделали здесь.

IE6 и img.src

Не так давно, пытаясь создать динамическую галерею, столкнулся с интересной проблемой, которая, разумеется, присутствует только во всенародно любимом IE шестой версии.
Задача — изменить атрибут src у изображения через JavaScript, по событию onclick — то есть, имеем следующий код:


<img alt="Some Image" id="someImage" src="image1.jpg" />
<a onclick="document.getElementById('someImage').src = 'image2.jpg'">изменить изображение</a>


Что получаем в IE6, и что должно быть на самом деле:



Решение — добавить в onclick "return false;" (отсюда).
Физкультпривет программистам IE :)

четверг, 8 октября 2009 г.

apache и виртуальные хосты

У apache есть интересная особенность — если в качестве имени виртуального хоста прописаны wildcard domains (т.е. ServerName *.example.org), то просто так создать еще один виртуальный хост (скажем, foo.example.org) уже не получится — apache будет просто его игнорировать, и перенаправлять все запросы на *.example.org.

Для решения проблемы в конфигурации apache все нужно оставить как есть (разве что удалить виртуальный хост foo.example.org), а в .htaccess, находящимся, разумеется, в DocumentRoot прописать следующее:

RewriteCond %{HTTP_HOST} ^(foo)\.example\.org [NC]
RewriteRule (.*) %1/$1 [L,QSA]
Данное правило будет перенаправлять все запросы вида http://foo.example.org/index.html в подпапку foo в DocumentRoot виртуального хоста.