<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bOntONweb &#187; PROграммирование</title>
	<atom:link href="http://www.bontonweb.com/category/programmirovanie/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bontonweb.com</link>
	<description>development</description>
	<lastBuildDate>Thu, 28 Oct 2010 18:45:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>bOntONweb development : старт нового проекта</title>
		<link>http://www.bontonweb.com/programmirovanie/bontonweb-development-start-novogo-proekta.html</link>
		<comments>http://www.bontonweb.com/programmirovanie/bontonweb-development-start-novogo-proekta.html#comments</comments>
		<pubDate>Thu, 01 Oct 2009 13:46:54 +0000</pubDate>
		<dc:creator>coder</dc:creator>
				<category><![CDATA[PROграммирование]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Аудит сайта]]></category>
		<category><![CDATA[Блоговодство]]></category>
		<category><![CDATA[Дизайн]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[Фриланс]]></category>
		<category><![CDATA[Юзабилити]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/programmirovanie/bontonweb-development-start-novogo-proekta.html</guid>
		<description><![CDATA[Сегодня торжественно запущен наш официальный сайт компании bOntONweb development. На этом сайте Вы найдете полное портфолио работ, которые систематизированы по разделам. Ко многим работам прилагается детальное описание процесса разработки, скриншоты, ключевые моменты, интересные проблемы и пути их решения. На данный момент нами выполнено более 250 проектов, поэтому портфолио будет наполняться постепенно, но оперативно  Кроме этого [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня торжественно запущен наш <a href="http://www.bontonweb.ru/">официальный сайт</a> компании bOntONweb development.</p>
<p>На этом сайте Вы найдете полное <a href="http://www.bontonweb.ru/portfolio/allportfolio.php">портфолио работ</a>, которые систематизированы по разделам. Ко многим работам прилагается детальное описание процесса разработки, скриншоты, ключевые моменты, интересные проблемы и пути их решения. На данный момент нами выполнено более 250 проектов, поэтому портфолио будет наполняться постепенно, но оперативно  <img src='http://www.bontonweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Кроме этого &#8211; на новом сайте опубликованы полные тексты <a href="http://www.bontonweb.ru/portfolio/audit/allaudit.php">аудитов сайтов</a>. Думаю многим будет интересно посмотреть на типичные ошибки, встречающиеся на сайтах и почитать рекомендации по их устранению.</p>
<p>Теперь мы можем общаться с Вами в реальном времени при помощи <a href="https://siteheart.com/webconsultation/15608?byhref=1">Live Help</a>. Вы можете задать вопросы, посвященные публикациям на этом блоге и новом сайте и получить бесплатную и квалифицированную консультацию по технологиям сайтостроения и путям повышения эффективности сайтов.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/programmirovanie/bontonweb-development-start-novogo-proekta.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>История построения одного веб-портала.</title>
		<link>http://www.bontonweb.com/programmirovanie/istoriya-postroeniya-odnogo-veb-portala.html</link>
		<comments>http://www.bontonweb.com/programmirovanie/istoriya-postroeniya-odnogo-veb-portala.html#comments</comments>
		<pubDate>Sat, 13 Sep 2008 20:10:36 +0000</pubDate>
		<dc:creator>desss</dc:creator>
				<category><![CDATA[PHP, SQL]]></category>
		<category><![CDATA[PROграммирование]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[портал]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/programmirovanie/istoriya-postroeniya-odnogo-veb-portala.html</guid>
		<description><![CDATA[История построения одного веб-портала. Дмитрий Супруненко (abolabo_at_gmail.com) &#160; &#160; Постовой: Реалити-шоу о домашнем интернет-бизнесе партнерские программы по кликам Качественный контент для сайтов Интернет магазин офисной мебели centeroffice.ru. Предисловие. В последнее время трудно найти крупную компанию, которая не мечтала бы иметь свой корпоративный веб-портал. Сначала какой-нибудь отдел сделает свой сайт, потом другой отдел сделает свой, и [...]]]></description>
			<content:encoded><![CDATA[<p><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title></title> 	 	<meta name="GENERATOR" content="OpenOffice.org 2.4  (Linux)" /></p>
<style type="text/css"> 	<!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 	--> 	</style>
<p style="margin-bottom: 0cm" align="center"><font size="5">История построения одного веб-портала.</font></p>
<p style="margin-bottom: 0cm" align="right"><font size="2">Дмитрий Супруненко (abolabo_at_gmail.com)</font></p>
<p style="margin-bottom: 0cm" align="center">&nbsp;</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p>Постовой:<br />
<a href='http://bobrishka.ru'>Реалити-шоу о домашнем интернет-бизнесе</a><br />
<a href="http://2uz.info/">партнерские программы по кликам</a><br />
Качественный <a href='http://www.textbroker.ru'>контент для сайтов</a><br />
<a href='http://centeroffice.ru/'>Интернет магазин офисной мебели centeroffice.ru.</a></p>
<p style="margin-bottom: 0cm" align="center">Предисловие.</p>
<p style="margin-bottom: 0cm">В последнее время трудно найти крупную компанию, которая не мечтала бы иметь свой корпоративный веб-портал. Сначала какой-нибудь отдел сделает свой сайт, потом другой отдел сделает свой, и потом еще один и на каждом сайте свой пароль и попробуй это все запомнить, не то чтобы разобраться что да как. И вот тогда возникает потребность объединить все сайты в один портал. Но как сделать, если они разнесены физически, и даже не находятся в одной сети и связаны посредством интернет? Далее речь пойдет как раз о таком случае, веб-портал с горизонтальным масштабированием (через добавление серверов).</p>
<p style="margin-bottom: 0cm"> Как оно в жизни часто бывает, техническое задание в письменном виде мне предоставлено не было. Было распоряжение начальника о создании пока одного веб-сайта, точнее обновления (как потом оказалось правильнее было бы его все-таки переписать). Вобщем как всегда:)</p>
<p style="margin-bottom: 0cm">В результате всего этого процесса выяснилось, что существует сайт, который является официальным сайтом предприятия и доступный из интернет, а также еще один, сугубо внутренний ресурс доступный только из корпоративной сети. Итого целая куча всяких сайтов, в которых я, будучи недавно принятым на работу, никогда бы не разобрался:).</p>
<p style="margin-bottom: 0cm">Также мне было показан приказ о создании на предприятии веб-портала, который подразумевал единую базу пользователей для всех веб-ресурсов предприятия. <span id="more-172"></span>Стоит сразу читателю прояснить ситуацию с подчинением. Я работаю в отделе, который разрабатывает программы для технологической части бизнес-процесса предприятия, и этот отдел территориально удален от офиса (хвала Господу! <img src='http://www.bontonweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ), в котором есть свой отдел ИТ. Вот как раз он разработал  и внедрил официальный и внутрикорпоративный сайты предприятия. Мои же сайты находятся на физически разнесенных веб-серверах службы, в состав которой входит отдел, где я  работаю.</p>
<p><a href="http://blogun.ru/?r=14612"><img src="http://blogun.ru/advert/080426-blogun-468x60.gif" height="60" width="468" /></a></p>
<p style="margin-bottom: 0cm" align="left"> <strong>Что мы имеем.</strong></p>
<p style="margin-bottom: 0cm">Итак, мы имеем один центральный сайт и множество региональных, каждый со своей административной консолью. Каждый сайт предприятия имеет как минимум два окошка для доступа, белый ip-адрес, для доступа из  интернет, и внутренний для доступа из корпоративной сети, центральный DNS-сервер для интернета, реплики его для региональных сетей.</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm"><strong>Что требуется и технические условия для этого.</strong></p>
<p style="margin-bottom: 0cm">Требуется объединить базы пользователей всех сайтов с присвоением единого идентификатора каждому пользователю и сделать так, чтобы при путешествии по сайтам предприятия пользователю не надо было каждый раз проходить аутентификацию.</p>
<p style="margin-bottom: 0cm">Ограничения:</p>
<ul>
<li>
<p style="margin-bottom: 0cm">Регистрация 	и изменение профиля пользователя должна 	происходить только на центральном 	сайте.</p>
</li>
<li>
<p style="margin-bottom: 0cm">Доступ 	ко всем сайтам портала должен быть 	децентрализованным. При падении центрального сайта, с 	которого производится аутентификация, 	должен быть альтернативный вход с 	использованием базы пользователей 	регионального сайта для повышения доступности сервиса.</p>
</li>
<li>
<p style="margin-bottom: 0cm">Должны 	использоваться только 80 и 443 порты. 	Данное условие навязано суровой 	реальностью (если сервер стоит где-нибудь 	в конторе, у которой арендуется помещение со их сисадминами, то там, как правило, открываются только 80й 	и 443й порты для работы в интернет арендаторам и добиться открытия 	какого-нибудь еще порта, например для 	репликации базы данных, не представляется 	возможным).</p>
</li>
<li>
<p style="margin-bottom: 0cm">Раздача 	прав доступа не должна производится 	одним кликом. Так как сайты все разные, 	с разным функционалом и своими 	особенностями, то и настройка доступа 	должна быть более тонкая для каждого, 	отдельно взятого пользователя.</p>
</li>
</ul>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p><a href="http://www.setlinks.ru/?pid=25896" target="_blank"><img src="http://static.setlinks.ru/partners/500_45/1.gif" border="0" /></a></p>
<p style="margin-bottom: 0cm"><strong>Как делалось и что получилось.</strong></p>
<p style="margin-bottom: 0cm">Начнем с базы пользователей. На совещании двух отделов по ИТ было принято решение хранить общую базу пользователей на центральном сервере, а на региональных только тех, кто имеет доступ к ресурсу. Стоит напомнить, что права доступа на центральном сайте даются исключительно на ресурс, а права доступа к тем или иным страницам выставляются на каждом сайте отдельно для каждой группы пользователей. Это было сделано по причине разнообразия предоставляемых информационных услуг и невозможности выставить права пользователю одним кликом. Ну, например, мне на сайте нужно пользователя привязать к полю своей таблицы, чтобы он получал ограниченную информацию. Делать привязку идентификатора пользователя к свой таблице через написание отдельной админки не представляется возможным, так как мне надо будет либо перетягивать таблицу на сервер, где стоит админка портала, либо разрешать доступ непосредственно к своей базе, что запрещено техническими условиями(см. выше про открытые порты).</p>
<p style="margin-bottom: 0cm"> Добавление, удаление и изменение данных пользователей происходит по инициативе центрального сервера. Каждый час срабатывает скрипт, который в цикле обходит все сайты. Каждый проход цикла это:</p>
<ul>
<li>
<p style="margin-bottom: 0cm">выборка списка 	пользователей, что сейчас имеют доступ 	к  сайту.</p>
</li>
<li>
<p style="margin-bottom: 0cm">проверка на добавленных 	вручную юзеров(на случай срочного 	предоставления прав доступа. Админ 	регионального сайта может добавить 	юзера со специально сформированным 	идентификатором). Если такие пользователи 	есть, они импортируются в центральную 	базу с присвоением нового идентификатора, 	ну и, соответственно, заменяется ид на 	удаленном ресурсе на новый, уже, так 	сказать, окончательный.</p>
</li>
<li>
<p style="margin-bottom: 0cm">добавление в базу 	тех пользователей, которым недавно 	были даны права на сайт.</p>
</li>
<li>
<p style="margin-bottom: 0cm">удаление тех, у 	которых право доступа отняли. После 	удаления из списка пользователей сайта 	эти пользователи теряют все права 	доступа к страницам. Если с центрального 	сайта кого-то из них опять добавят, он 	будет иметь гостевой уровень доступа. 	Для блокировки доступа ко всем веб-сайтам 	используем поле expired в таблице 	пользователей. В таблице перевязки 	пользователя с группой пользователей 	 регионального сайта также есть поле 	expired, которое случит для блокировки 	доступа пользователя на конкретном 	региональном веб-сайте, а не во всем 	веб-портале.</p>
</li>
<li>
<p style="margin-bottom: 0cm">обновление данных 	пользователя (например, пароль), 	основываясь на поле последнего изменения 	строки в таблице пользователей.</p>
</li>
</ul>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm">Чего мы добились подобной схемой? Ответ прост — повышения доступности сайтов. Если бы мы сделали вход на сайт только через центральный сервер, то сильно бы зависели от провайдеров, к которым подключен центральный сайт. В случае, когда центральный сайт не отвечает, мы просто набираем нужный нам адрес в адресной строке броузера и входим на сайт, так сказать, локально, опираясь на список пользователей регионального сервера. Если же мы пытаемся зайти на сайт при работающем центральном сервере, то региональный сервер проверит его доступность и перенаправит пользователя для последующего входа.</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm" align="left">Так как все сайты находятся в домене, например yourdomain.com, то в php.ini каждого из веб-серверов прописываем параметр session_cookie_domain = . yourdomain.com. Теперь все куки, выставленные на любом из сайтов будут видны другим сайтам этого домена. Сделано это для того, чтобы идентификатор сессии не менялся при переходе от сайта к сайту.</p>
<p style="margin-bottom: 0cm">Также выставляем время жизни сессии, например, в 15 минут, и записываем время устаревания этой сессии и ip-адрес в базу для каждого пользователя, чтобы избежать (хоть как-то) двойных входов под одним и тем же логином с разных мест.</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm">На центральном сервере создаем сайт, который будет принимать статистику от региональных чтобы знать какая сессия активна и какому пользователю она принадлежит. Назовем его statistic.yourdomain.com. Этот сайт нам будет также возвращать идентификатор пользователя по идентификатору сессии, когда происходит переход юзера от одного регионального сервера к другому. Естественно, не просто так, а по шифрованному каналу с уникальным ключом шифрации для каждого веб-сервера.</p>
<p style="margin-bottom: 0cm">Далее нужно внимательно изучить <a href="http://www.bontonweb.com/wp-content/uploads/2008/09/redirect_in_websystem.png" target="_blank">схему перенаправления</a>. Не смотря на свою сложность она позволяет пользователю записать в куки только идентификатор сессии и все. Все остальные действия производят сервера.</p>
<p style="margin-bottom: 0cm"> <a href="http://www.bontonweb.com/wp-content/uploads/2008/09/redirect_in_websystem.png" title="Схема перенаправления веб-портала(100кб)"><img src="http://www.bontonweb.com/wp-content/uploads/2008/09/redirect_in_websystem.thumbnail.png" alt="Схема перенаправления веб-портала(100кб)" /></a></p>
<p style="margin-bottom: 0cm"><strong>Послесловие</strong></p>
<p style="margin-bottom: 0cm">Данная статья не является всего лишь теорией, а описывает реально работающую схему. В нашем случае она работает на FreeBSD+apache+php+postgresql+mysql(на центральном сайте), но вполне пригодна и для других программых реализаций.</p>
<p style="margin-bottom: 0cm">Просьба все отзывы и замечания присылать на abolabo_at_gmail.com.</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
<p style="margin-bottom: 0cm">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/programmirovanie/istoriya-postroeniya-odnogo-veb-portala.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ошибка с COM в Delphi приложении</title>
		<link>http://www.bontonweb.com/programmirovanie/oshibka-s-com-v-delphi-prilozhenii.html</link>
		<comments>http://www.bontonweb.com/programmirovanie/oshibka-s-com-v-delphi-prilozhenii.html#comments</comments>
		<pubDate>Wed, 18 Jun 2008 05:07:40 +0000</pubDate>
		<dc:creator>Mr. Den</dc:creator>
				<category><![CDATA[PROграммирование]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/programmirovanie/oshibka-s-com-v-delphi-prilozhenii.html</guid>
		<description><![CDATA[Вобщем ситуация такова, есть приложение писанное на delphi, исползует COM объект (в данном случае для работы с Excel), после завершения выполнения последней строчки кода, т.е. по закрытии приложения выпадает ошибка Access Violation .......... in oleaut32.dll Рецепт: Нужно, как вариант, подчищать COM объекты вручную после чего вызывать CoUninitialize. Поскольку я использую компонент классаTExceApplication, размещенный на форме, [...]]]></description>
			<content:encoded><![CDATA[<p>Вобщем ситуация такова, есть приложение писанное на delphi, исползует COM объект (в данном случае для работы с Excel), после завершения выполнения последней строчки кода, т.е. по закрытии приложения выпадает ошибка Access Violation .......... in oleaut32.dll</p>
<p>Рецепт:</p>
<p>Нужно, как вариант, подчищать COM объекты вручную после чего вызывать CoUninitialize. Поскольку я использую компонент классаTExceApplication, размещенный на форме, то вышесказанные действия я выполняю в обработчике FormDestroy этой формы, т.е. выглядит это так:</p>
<div class="igBar"><span id="ldelphi-2"><a href="#" onclick="javascript:showPlainTxt('delphi-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">DELPHI:</span>
<div id="delphi-2">
<div class="delphi">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">procedure</span> TPrintForm.<span style="color: #006600;">FormDestroy</span><span style="color: #66cc66;">&#40;</span>Sender: <span style="color: #993333;">TObject</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">begin</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">XL:=<span style="color: #000000; font-weight: bold;">nil</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">CoUninitialize;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">end</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>где XL - экземпляр класса TExcelApplication (наш COM объект)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/programmirovanie/oshibka-s-com-v-delphi-prilozhenii.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delphi звук через системный динамик</title>
		<link>http://www.bontonweb.com/programmirovanie/delphi-zvuk-cherez-sistemnyj-dinamik.html</link>
		<comments>http://www.bontonweb.com/programmirovanie/delphi-zvuk-cherez-sistemnyj-dinamik.html#comments</comments>
		<pubDate>Mon, 26 May 2008 10:37:22 +0000</pubDate>
		<dc:creator>Mr. Den</dc:creator>
				<category><![CDATA[PROграммирование]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/programmirovanie/delphi-zvuk-cherez-sistemnyj-dinamik.html</guid>
		<description><![CDATA[Периодически сталкиваюсь с задачей воспроизведения звука в windows приложениях исключительно через системный динамик. В старые добрые времена ОС DOS в прародителе делфи - компиляторе языка Pascal, была функция Beep у которой параметром передавалась частота и кажись длительность воспроизведения. Так вот в API современных версий Windows основанных на NT (а это и win2000 и XP и [...]]]></description>
			<content:encoded><![CDATA[<p>Периодически сталкиваюсь с задачей воспроизведения звука в windows приложениях исключительно через системный динамик.<br />
В старые добрые времена ОС DOS в прародителе делфи - компиляторе языка Pascal, была функция Beep у которой параметром передавалась частота и кажись длительность воспроизведения. Так вот в API современных версий Windows основанных на NT (а это и win2000 и XP и последующие) описана аналогичная функция<br />
BOOL Beep<br />
(DWORD dwFreq,     // частота, Гц<br />
DWORD dwDuration  // продолжительность, мс<br />
);<br />
которая по сути тем же и занимается  <img src='http://www.bontonweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':smile:' class='wp-smiley' /><br />
однако для не NT - основанных систем эта функция не работает, точнее ее параметры игнорируются.<br />
<span id="more-68"></span><br />
так вот в этом случае приходит на помощь незабвенный ассемблер, на базе которого и основано предлагаемое мною решение:</p>
<div class="igBar"><span id="ldelphi-4"><a href="#" onclick="javascript:showPlainTxt('delphi-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">DELPHI:</span>
<div id="delphi-4">
<div class="delphi">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">procedure</span> BeepInSpeaker<span style="color: #66cc66;">&#40;</span>Freq: <span style="color: #993333;">Word</span>; Duration: <span style="color: #993333;">Integer</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Ver: TOsVersionInfo;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">begin</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Ver.<span style="color: #006600;">dwOSVersionInfoSize</span> := <span style="color: #000066;">SizeOf</span><span style="color: #66cc66;">&#40;</span>Ver<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">GetVersionEx<span style="color: #66cc66;">&#40;</span>Ver<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">if</span> Ver.<span style="color: #006600;">dwPlatformId</span> = VER_PLATFORM_WIN32_NT <span style="color: #000000; font-weight: bold;">then</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Windows.<span style="color: #000066;">Beep</span><span style="color: #66cc66;">&#40;</span>Freq, Duration<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">begin</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">asm</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">movzx ecx, Freq</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mov eax, <span style="color: #cc66cc;color:#800000;">1193180</span> <span style="color: #808080; font-style: italic;">// тактовая частота</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">sub edx, edx</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">div</span> ecx <span style="color: #808080; font-style: italic;">// преобразование частоты в делитель</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mov ecx, eax</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mov al,0b6H</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">out 43H,al <span style="color: #808080; font-style: italic;">// управляющие слово</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mov al,cl</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">out 42h,al <span style="color: #808080; font-style: italic;">// младший байт делителя</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mov al,ch</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">out 42h,al <span style="color: #808080; font-style: italic;">// старший байт делителя</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">in</span> al,61H</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">or</span> al,03H</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">out 61H,al <span style="color: #808080; font-style: italic;">// включить звук</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">end</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066;">sleep</span><span style="color: #66cc66;">&#40;</span>Duration<span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// пауза на время звучани</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">asm</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">in</span> al,61H</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">and</span> al,0fcH</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">out 61H,al <span style="color: #808080; font-style: italic;">// выключить звук по окончанию Duration</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">end</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">end</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">end</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/programmirovanie/delphi-zvuk-cherez-sistemnyj-dinamik.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery API расширение для Dreamweaver</title>
		<link>http://www.bontonweb.com/texnologii/html/jquery-api-rasshirenie-dlya-dreamweaver.html</link>
		<comments>http://www.bontonweb.com/texnologii/html/jquery-api-rasshirenie-dlya-dreamweaver.html#comments</comments>
		<pubDate>Mon, 21 Apr 2008 12:17:59 +0000</pubDate>
		<dc:creator>coder</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript на заметку]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/texnologii/html/jquery-api-rasshirenie-dlya-dreamweaver.html</guid>
		<description><![CDATA[Постовой: рецепты народной медицины частное фото Задача: максимально упростить использование JavaScript-библиотеки jQuery при верстке сайтов в Dreamweaver. Решение: для этого удобно установить специальное расширение для Dreamweaver, которое значительно упрощает и ускоряет процесс разработки скриптов на базе библиотеки jQuery Скачать расширение]]></description>
			<content:encoded><![CDATA[<p>Постовой: <a href='http://www.rezepty.by/'>рецепты народной медицины</a><br />
<a href='http://album.zp.ua'>частное фото</a></p>
<p><strong>Задача:</strong> максимально упростить использование JavaScript-библиотеки <a href="http://jquery.com/" target="_blank">jQuery</a> при верстке сайтов в Dreamweaver.<br />
<strong> Решение:</strong> для этого удобно установить специальное расширение для Dreamweaver, которое значительно упрощает и ускоряет процесс разработки скриптов на базе библиотеки <a href="http://jquery.com/" target="_blank">jQuery</a></p>
<p><a href="http://xtnd.us/dreamweaver/jquery#download"><img src="http://www.bontonweb.com/wp-content/uploads/2008/04/screen_01.gif" /></a></p>
<p><a href="http://xtnd.us/files/jQuery_API.mxp">Скачать расширение</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/texnologii/html/jquery-api-rasshirenie-dlya-dreamweaver.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Отладка AJAX приложений в Zend Studio (часть 1 не последняя)</title>
		<link>http://www.bontonweb.com/programmirovanie/otladka-ajax-prilozhenij-v-zend-studio-chast-1-ne-poslednyaya.html</link>
		<comments>http://www.bontonweb.com/programmirovanie/otladka-ajax-prilozhenij-v-zend-studio-chast-1-ne-poslednyaya.html#comments</comments>
		<pubDate>Sun, 18 Nov 2007 01:04:46 +0000</pubDate>
		<dc:creator>Mr. Den</dc:creator>
				<category><![CDATA[PROграммирование]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/programmirovanie/otladka-ajax-prilozhenij-v-zend-studio-chast-1-ne-poslednyaya.html</guid>
		<description><![CDATA[Проблема: Как заставить Zend Debugger реагировать на AJAX запросы. Ответ: Очень простой способ, добавить к запрашиваему через AJAX url следующие параметры PLAIN TEXT JAVA: start_debug=1&#38;amp; debug_port=10000&#38;amp; debug_fastfile=1&#38;amp; debug_host=&#38;amp; send_sess_end=1&#38;amp; debug_no_cache=1142283433288&#38;amp; debug_stop=1&#38;amp; debug_url=1&#38;amp; debug_new_session=1 работает в большинстве случаев, если вы особенно не изменяли стандартные настройки отладчика. Если вы все же меняли настройки то Вам нужно будет [...]]]></description>
			<content:encoded><![CDATA[<p>Проблема:</p>
<p>Как  заставить Zend Debugger реагировать на AJAX  запросы.<span id="more-26"></span></p>
<p>Ответ:</p>
<p>Очень простой способ,</p>
<p>добавить к запрашиваему через AJAX url следующие параметры</p>
<div class="igBar"><span id="ljava-6"><a href="#" onclick="javascript:showPlainTxt('java-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVA:</span>
<div id="java-6">
<div class="java">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">start_debug=<span style="color: #cc66cc;color:#800000;">1</span>&amp;amp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">debug_port=<span style="color: #cc66cc;color:#800000;">10000</span>&amp;amp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">debug_fastfile=<span style="color: #cc66cc;color:#800000;">1</span>&amp;amp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">debug_host=&amp;amp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">send_sess_end=<span style="color: #cc66cc;color:#800000;">1</span>&amp;amp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">debug_no_cache=<span style="color: #cc66cc;color:#800000;">1142283433288</span>&amp;amp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">debug_stop=<span style="color: #cc66cc;color:#800000;">1</span>&amp;amp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">debug_url=<span style="color: #cc66cc;color:#800000;">1</span>&amp;amp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">debug_new_session=<span style="color: #cc66cc;color:#800000;">1</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>работает в большинстве случаев, если вы особенно не изменяли стандартные настройки отладчика.</p>
<p>Если вы все же меняли настройки то Вам  нужно будет корректно указать параметры debug_port и debug_host</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/programmirovanie/otladka-ajax-prilozhenij-v-zend-studio-chast-1-ne-poslednyaya.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обход child nodes (потомков) определнного элемента в Javascript</title>
		<link>http://www.bontonweb.com/programmirovanie/javascript/obxod-child-nodes-potomkov-opredelnnogo-elementa-v-javascript.html</link>
		<comments>http://www.bontonweb.com/programmirovanie/javascript/obxod-child-nodes-potomkov-opredelnnogo-elementa-v-javascript.html#comments</comments>
		<pubDate>Fri, 16 Nov 2007 10:23:50 +0000</pubDate>
		<dc:creator>Mr. Den</dc:creator>
				<category><![CDATA[JavaScript на заметку]]></category>
		<category><![CDATA[PROграммирование]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/programmirovanie/javascript/obxod-child-nodes-potomkov-opredelnnogo-elementa-v-javascript.html</guid>
		<description><![CDATA[Речь о том как корректно обойти элементы потомки DOM для данного элемента, простите за тафтологию В общем конструкция следующая: PLAIN TEXT JAVA: var object = document.getElementById&#40;'el'&#41;; for &#40;var childItem in object.childNodes&#41; &#123; if &#40;object.childNodes&#91;childItem&#93;.nodeType == 1&#41; object.childNodes&#91;childItem&#93;.style.color = '#FF0000'; &#125; В данном примере мы берем некоторый элемент с id = 'el' и проходим по массиву [...]]]></description>
			<content:encoded><![CDATA[<p>Речь о том как корректно обойти элементы потомки DOM для данного элемента, простите за тафтологию <img src='http://www.bontonweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>В общем конструкция следующая:</p>
<div class="igBar"><span id="ljava-10"><a href="#" onclick="javascript:showPlainTxt('java-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVA:</span>
<div id="java-10">
<div class="java">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">var object = document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'el'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span>var childItem in object.<span style="color: #006600;">childNodes</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>object.<span style="color: #006600;">childNodes</span><span style="color: #66cc66;">&#91;</span>childItem<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">nodeType</span> == <span style="color: #cc66cc;color:#800000;">1</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">object.<span style="color: #006600;">childNodes</span><span style="color: #66cc66;">&#91;</span>childItem<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">style</span>.<span style="color: #006600;">color</span> = <span style="color: #ff0000;">'#FF0000'</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><span id="more-21"></span>В данном примере мы берем некоторый элемент с id = 'el' и проходим по массиву его потомков (childNodes), при этом проверяем nodeType потомка, чтобы он был элементом страницы и если так, то окрашиваем его в КРАСНЫЙ цвет.</p>
<p>В принципе на базе этой конструкции можно организовать рекурсивный обход дерева всех потомков заданного элемента, если конечно возникнет такая необходимость, но пока я представляю только упрощенный вариант.</p>
<p>Здесь следует обратить внимание на  проверку свойства nodeType == 1, дело в том что без этой проверки в обработку попадут и разрывы строк, т.е. символы "\n", которые тоже воспинимаются как ноды. Т.е. например конструкция вида:</p>
<div class="igBar"><span id="lhtml-11"><a href="#" onclick="javascript:showPlainTxt('html-11'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-11">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"el"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></a></span>1111<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></a></span>2222<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></a></span>3333<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>и конструкция:</p>
<div class="igBar"><span id="lhtml-12"><a href="#" onclick="javascript:showPlainTxt('html-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-12">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"el"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></a></span>1111<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></a></span>2222<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></a></span>3333<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>без этой проверки обрабатывались бы по разному, т.е. в первом случае мы бы получили ошибку, поскольку потомок "  \n  " не имеет свойства style <img src='http://www.bontonweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/programmirovanie/javascript/obxod-child-nodes-potomkov-opredelnnogo-elementa-v-javascript.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Добавление обработчика события с помощью JavaScript</title>
		<link>http://www.bontonweb.com/programmirovanie/javascript/dobavlenie-obrabotchika-sobytiya-s-pomoshhyu-javascript.html</link>
		<comments>http://www.bontonweb.com/programmirovanie/javascript/dobavlenie-obrabotchika-sobytiya-s-pomoshhyu-javascript.html#comments</comments>
		<pubDate>Fri, 16 Nov 2007 10:16:10 +0000</pubDate>
		<dc:creator>Mr. Den</dc:creator>
				<category><![CDATA[JavaScript на заметку]]></category>
		<category><![CDATA[PROграммирование]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/programmirovanie/javascript/dobavlenie-obrabotchika-sobytiya-s-pomoshhyu-javascript.html</guid>
		<description><![CDATA[Есть несколько методов, но я приведу код которым пользуюсь сам. С некоей притензией на универсальность не судите строго . Итак: PLAIN TEXT JAVA: function addHandler&#40;object, event, handler&#41; &#123; if &#40;typeof object.addEventListener != 'undefined'&#41; object.addEventListener&#40;event, handler, false&#41;; else if &#40;typeof object.attachEvent != 'undefined'&#41; object.attachEvent&#40;'on' + event, handler&#41;; else throw "Incompatible browser"; &#125; Все в принципе понятно: [...]]]></description>
			<content:encoded><![CDATA[<p>Есть несколько методов, но я приведу код которым пользуюсь сам. С некоей притензией на универсальность <img src='http://www.bontonweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  не судите строго <img src='http://www.bontonweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Итак:</p>
<div class="igBar"><span id="ljava-16"><a href="#" onclick="javascript:showPlainTxt('java-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVA:</span>
<div id="java-16">
<div class="java">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">function addHandler<span style="color: #66cc66;">&#40;</span>object, event, handler<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>typeof object.<span style="color: #006600;">addEventListener</span> != <span style="color: #ff0000;">'undefined'</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">object.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>event, handler, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>typeof object.<span style="color: #006600;">attachEvent</span> != <span style="color: #ff0000;">'undefined'</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">object.<span style="color: #006600;">attachEvent</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'on'</span> + event, handler<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">else</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #ff0000;">"Incompatible browser"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
<span id="more-20"></span>Все в принципе понятно:</p>
<ul>
<li>object - это наш элемент;</li>
<li>event - желаемое событие, к которому мы и написали обработчик</li>
<li>handler - собственно функция - обработчик</li>
</ul>
<p>Работает  в IE, FF, Opera, Safari, где не работает честно говоря не нашел <img src='http://www.bontonweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Пример вызова:</p>
<div class="igBar"><span id="ljava-17"><a href="#" onclick="javascript:showPlainTxt('java-17'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVA:</span>
<div id="java-17">
<div class="java">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">var but = document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'but'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">addHandler<span style="color: #66cc66;">&#40;</span>but, <span style="color: #ff0000;">'mousedown'</span>, change_but_status<span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Здесь, естесственно, change_but_status - функция обработчик должна быть где-то описана.</p>
<p>О, да, чуть не забыл, функция удаления обработчика события у элемента (параметры аналогичны):</p>
<div class="igBar"><span id="ljava-18"><a href="#" onclick="javascript:showPlainTxt('java-18'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVA:</span>
<div id="java-18">
<div class="java">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">function removeHandler<span style="color: #66cc66;">&#40;</span>object, event, handler<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>typeof object.<span style="color: #006600;">removeEventListener</span> != <span style="color: #ff0000;">'undefined'</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">object.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>event, handler, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>typeof object.<span style="color: #006600;">detachEvent</span> != <span style="color: #ff0000;">'undefined'</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">object.<span style="color: #006600;">detachEvent</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'on'</span> + event, handler<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">else</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #ff0000;">"Incompatible browser"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/programmirovanie/javascript/dobavlenie-obrabotchika-sobytiya-s-pomoshhyu-javascript.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Добавление скрипта в DOM средствами JavaScript (читать жабаскрипт :)</title>
		<link>http://www.bontonweb.com/programmirovanie/javascript/dobavlenie-skripta-v-dom-sredstvami-javascript-chitat-zhabaskript.html</link>
		<comments>http://www.bontonweb.com/programmirovanie/javascript/dobavlenie-skripta-v-dom-sredstvami-javascript-chitat-zhabaskript.html#comments</comments>
		<pubDate>Wed, 14 Nov 2007 00:37:55 +0000</pubDate>
		<dc:creator>Mr. Den</dc:creator>
				<category><![CDATA[JavaScript на заметку]]></category>
		<category><![CDATA[PROграммирование]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/programmirovanie/javascript/dobavlenie-skripta-v-dom-sredstvami-javascript-chitat-zhabaskript.html</guid>
		<description><![CDATA[Это полезно, например в случае когда в результате AJAX запроса возвращается среди прочего некоторый кусок javascript кода, который нужно выполнить в броузере. Фишка состоит в том, что javascript код нужно помещать в head документа, тогда он будет выполнен. Последовательность добавления следующая: PLAIN TEXT JAVA: scriptNode = document.createElement&#40;"script"&#41;; scriptNode.type = "text/javascript"; scriptNode.text = elValue; document.getElementsByTagName&#40;'head'&#41;&#91;0&#93;.appendChild&#40;scriptNode&#41;; Как [...]]]></description>
			<content:encoded><![CDATA[<p>Это полезно, например в случае когда в результате  AJAX запроса возвращается среди прочего некоторый кусок javascript кода, который нужно выполнить в броузере.<span id="more-17"></span></p>
<p>Фишка состоит в том, что javascript код нужно помещать в head документа, тогда он будет выполнен.</p>
<p>Последовательность добавления следующая:</p>
<div class="igBar"><span id="ljava-20"><a href="#" onclick="javascript:showPlainTxt('java-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVA:</span>
<div id="java-20">
<div class="java">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">scriptNode = document.<span style="color: #006600;">createElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"script"</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">scriptNode.<span style="color: #006600;">type</span> = <span style="color: #ff0000;">"text/javascript"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">scriptNode.<span style="color: #006600;">text</span> = elValue;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">document.<span style="color: #006600;">getElementsByTagName</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'head'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">appendChild</span><span style="color: #66cc66;">&#40;</span>scriptNode<span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Как нетрудно видеть в этом случае содержимое (собственно javascript код) представлено переменной elValue, а созданный элемент script добавляется в head документа</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/programmirovanie/javascript/dobavlenie-skripta-v-dom-sredstvami-javascript-chitat-zhabaskript.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как в IE перекрыть элемент управления формы своим контентом</title>
		<link>http://www.bontonweb.com/programmirovanie/javascript/kak-v-ie-perekryt-element-upravleniya-formy-svoim-kontentom.html</link>
		<comments>http://www.bontonweb.com/programmirovanie/javascript/kak-v-ie-perekryt-element-upravleniya-formy-svoim-kontentom.html#comments</comments>
		<pubDate>Wed, 14 Nov 2007 00:19:03 +0000</pubDate>
		<dc:creator>Mr. Den</dc:creator>
				<category><![CDATA[JavaScript на заметку]]></category>
		<category><![CDATA[PROграммирование]]></category>

		<guid isPermaLink="false">http://www.bontonweb.com/raznoe/kak-v-ie-perekryt-element-upravleniya-formy-svoim-kontentom.html</guid>
		<description><![CDATA[Ситуация, с которой сталкиваются при разработке галлерей или своих визуальных эффектов, или еще чего-нибудь, но в общем дело состоит в следующем: всеми гарячо любимый IE не может позволить визуально перекрыть элемент управления формы, например Div - ом с вашим драгоценным контентом плавно перемещаемым по экрану. В этом случае может помочь следующая конструкция: PLAIN TEXT HTML: [...]]]></description>
			<content:encoded><![CDATA[<p>Ситуация, с которой сталкиваются при разработке галлерей или своих визуальных эффектов, или еще чего-нибудь, но в общем дело состоит в следующем: всеми гарячо любимый IE не может позволить визуально перекрыть элемент управления формы, например Div - ом с вашим драгоценным контентом плавно перемещаемым по экрану.<br />
<span id="more-16"></span></p>
<p>В этом случае может помочь следующая конструкция:</p>
<div class="igBar"><span id="lhtml-22"><a href="#" onclick="javascript:showPlainTxt('html-22'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-22">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"ShimDiv"</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">"position:absolute; left:0; top:0"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/iframe.html"><span style="color: #000000; font-weight: bold;">&lt;iframe</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"tipShim"</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"about:blank"</span> <span style="color: #000066;">scrolling</span>=<span style="color: #ff0000;">"no"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066;">frameborder</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">"position:absolute; z-index:500"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/iframe&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Здесь, весь необходимый нам контент помещаем в iframe (id = tipShim), а управляем перемещением и прочими параметрами визуализации в div - е (id = ShimDiv).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bontonweb.com/programmirovanie/javascript/kak-v-ie-perekryt-element-upravleniya-formy-svoim-kontentom.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

