Вроде как вы искали что-то по теме "ie"

imagegrabwindow

September 19, 2007 Всякое

Вот какая мощная функция есть в >= 5.2.2 под виндой

imagegrabwindow - делает скриншот окна приложения. возвращает идентификатор изображения или false при неудачной попытке.

[sourcecode language='php']
$browser = new COM(”InternetExplorer.Application”);
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate(”http://jeka911.wordpress.com”);

/* Still working? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, “iesnap.png”);
[/sourcecode]

И получается скриншот сайта с php.

Опа, какой мощный комментарий от nopox’a:

Первый нах! :)
Субъективное мнение: COM суть зло, ибо неуниверсально и привязано к платформе. Хотя, с другой стороны, эта задача — автоматизированное создание скриншотов сайта — не имеет красивых решений.

Вообще, если кому вдруг понадобится куча скриншотов: для Windows можно использовать утилиту url2bmp (http://www.pixel-technology.com/freeware/url2bmp), которая помимо графического имеет мощный консольный интерфейс.

Для Unix придётся устанавливать X-server, запускать браузер и делать снимок окна посредством import из ImageMagick.

Вообще, наверное, надо взяться и написать универсальный интерфейс, максимально упрощающий и унифицирующий процедуру создания скринов сайта :)

innerHTML - тормоз

September 14, 2007 Всякое

Оказывается, что innerHTML может быть ужасным тормозом, если после его изменения перестраивается dom. Вот такая функция работает намного быстрей:

[sourcecode language='jscript']
/* This is much faster than using (el.innerHTML = value) when there are many
existing descendants, because in some browsers, innerHTML spends much longer
removing existing elements than it does creating new ones. */
function replaceHtml(el, html) {
var oldEl = (typeof el === “string” ? document.getElementById(el) : el);
/*@cc_on // Pure innerHTML is slightly faster in IE
oldEl.innerHTML = html;
return oldEl;
@*/
var newEl = oldEl.cloneNode(false);
newEl.innerHTML = html;
oldEl.parentNode.replaceChild(newEl, oldEl);
/* Since we just removed the old element from the DOM, return a reference
to the new element, which can be used to restore variable references. */
return newEl;
};
[/sourcecode]

описание

тестовая страница

Digg this if you’re tired of IE costing you money!

September 8, 2007 Всякое

Digg this if you’re tired of IE costing you money! (no ads involved)