<?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>Чудо{вищные} заметки &#187; ie</title>
	<atom:link href="http://miracle.rpz.name/tag/ie/feed/" rel="self" type="application/rss+xml" />
	<link>http://miracle.rpz.name</link>
	<description>Sorry for my terrible english. My native language is PHP.</description>
	<lastBuildDate>Thu, 12 Jan 2012 20:42:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
		<item>
		<title>Решения и их последствия.</title>
		<link>http://miracle.rpz.name/2011/04/16/ie9-and-custom-namespaced-attributes/</link>
		<comments>http://miracle.rpz.name/2011/04/16/ie9-and-custom-namespaced-attributes/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 11:28:36 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ieupdate]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=429</guid>
		<description><![CDATA[Разрабатывать продукт в недра которого может влезть &#8220;чужой&#8221; непросто. Мы придумываем всяческие &#8220;неймспейсы&#8221;, давая файлам, директориям, переменным и классам псевдо-уникальные префиксы, пытаясь предотвратить коллизии с чужеродной средой. Однажды, много лет назад, ко мне свалилась задача &#8211; размещение некой сложной формы на сторонних ресурсах. Очевидное и годами отработанное решение &#8211; iframe было забраковано, т.к. опыт и [...]]]></description>
			<content:encoded><![CDATA[<p>
Разрабатывать продукт в недра которого может влезть &#8220;чужой&#8221; непросто. Мы придумываем всяческие &#8220;неймспейсы&#8221;, давая файлам, директориям, переменным и классам псевдо-уникальные префиксы, пытаясь предотвратить коллизии с чужеродной средой. </p>
<p>
Однажды, много лет назад, ко мне свалилась задача &#8211; размещение некой сложной формы на сторонних ресурсах. Очевидное и годами отработанное решение &#8211; iframe было забраковано, т.к. опыт и <strike>пятая точка</strike>шестое чувство подсказывали &#8211; как только владелец сайта разместит форму у себя, его светлую голову немедленно посетит мысль &#8211; &#8220;а как мне приделать перламутровые пуговицы?!&#8221;. Это, признаться, пугало &#8211; целыми днями верстать и раскрашивать незнакомым дядям и тётям одну и ту же страницу пятью миллионами способов? Нет, пристрелите меня семеро! Второй способ &#8211; разработать и задокументировать API, чтобы владелец ресурса сам разрабатывал себе форму, был отвергнут как трудозатратный, но совершенно нежизнеспособный так как рядовой клиент как правило (тут могло бы быть нечто оскорбительное про уровень интеллекта и радиус кривизны передних конечностей, но цензура не пропустит) не готов своими силами что-то создавать, тогда как продукт конкурента был проще в освоении (работал из коробки). Был выбран третий путь &#8211; размещение формы в виде html-разметки, которую мы отдаём заказчику, что называется &#8220;в руки&#8221;, а данные подгружаем через <em>&lt;script src=&quot;http://my-resource.example.com/?parameters&quot;&gt;&lt;/script&gt;</em>, это позволяло владельцу ресурса до определённой степени контролировать внешний вид полученного документа и избавляло нас от трудозатратной кастомизации сотен инсталляций продукта. Но этот способ потенциально создавал много проблем, т.к. находясь в инородной среде наш документ мог &#8220;подхватить&#8221; незапланированные свойства, &#8220;заразится&#8221; чужими переменными и вообще рассыпаться в пыль в руках неуклюжего веб-мастера. Необходимо было тщательно изолировать всё и вся. Одним из способов отделить своё &#8220;добро&#8221; внутри документа было создание уникального &#8220;пространства имён&#8221;, например создание атрибутов в виде <em>&lt;div rpz:property=&quot;value&quot;&gt;&lt;/div&gt;</em> &#8211; это самое <b>rpz:</b> давало надежду на то, что внешний скрипт(движок сайта или сам вебмастер) &#8220;случайно&#8221; не создаст аналогичный атрибут с другим value (или вовсе без него), развалив всю эту шаткую конструкцию. Решение оказалось рабочим во всех доступных графических браузерах и популяризировалось мной не только в этом продукте, но и повсеместно в других <strike>(печатая эти строки пытаюсь понять &#8211; зачем вообще нужны были именно атрибуты и почему их нельзя было заменить на переменные в скрипте, но разумного ответа почему-то не нахожу)</strike>.</p>
<p>
Это неоднозначное решение &#8220;выстрелило в ногу&#8221; только на днях &#8211; появился IE9&#8230; <strike>Невероятно быстр, ангельски красив, дьявольски умён &#8211; блеск, а не браузер</strike> <strike>На вид такой же унылый как все предыдущие</strike> В общем обзор новшеств можно наверное найти на сайте разработчиков, ну а я увидел его первый раз два дня назад, ничего <strike>хорошего</strike> про него сказать не могу, да и речь совсем не о том. Случись такое совпадение &#8211; сайт заказчика оказался настолько весь из себя валиден, что IE9 работал со страницей в своём новом <strong>document.documentMode</strong>. И чтобы вы думали? Точно! Годами отработанная &#8220;технология&#8221; дала сбой &#8211; &#8220;самодельные&#8221; атрибуты просто-напросто не видны на такой странице, а моя твёрдая уверенность в том, что они есть запретила здравому смыслу проверять их наличие&#8230; так и случаются epic fail-ы, так было и со мной.</p>
<p>
Один грязный хак удалось временно залатать <a href="http://msdn.microsoft.com/ru-ru/library/cc288325%28v=vs.85%29.aspx">другим грязным хаком</a>, но урок получен &#8211; недокументированная возможность это лишь &#8220;возможность&#8221;, строить на ней что-то прочное нельзя.</p>
<p>
К слову сказать, не так давно вместо атрибута rpz:property=&quot;value&quot;, я начал использовать &#8220;<a href="http://dev.w3.org/html5/spec/elements.html#embedding-custom-non-visible-data-with-the-data-attributes">документированную возможность</a>&#8221; &#8211; атрибут data-rpz-property=&quot;value&quot; и соответствующий вызов в js изменился с <a href="http://api.jquery.com/attr/">jQuery(selector).attr</a>(&quot;rpz:property&quot;) на <a href="http://api.jquery.com/data/">jQuery(selector).data</a>(&quot;rpz-property&quot;) , видимо &#8220;шестое чувство&#8221; о чём-то подозревало&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2011/04/16/ie9-and-custom-namespaced-attributes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE8 и currentStyle</title>
		<link>http://miracle.rpz.name/2009/03/20/currentstyle-ie8/</link>
		<comments>http://miracle.rpz.name/2009/03/20/currentstyle-ie8/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 15:38:58 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie8]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=217</guid>
		<description><![CDATA[Новость одной строкой&#8230; Когда-то я рассказал как добавить border-spacing для IE используя свойство currentStyle. Вчера, как многие знают, вышел IE8.Собственно на этом можно было бы многозначительно пост закончить&#8230; В общем в IE8 более этот трюк не работает. В currentStyle не попадают неизвестные браузеру свойства. Изящного решения пока не нашёл &#8211; если уж пользовались им, то [...]]]></description>
			<content:encoded><![CDATA[<p>Новость одной строкой&#8230; Когда-то я рассказал как добавить <a href="http://miracle.rpz.name/2007/12/13/border-spacing-for-ie/">border-spacing для IE</a> используя свойство <strong>currentStyle</strong>.</p>
<p>Вчера, как многие знают,  вышел <a href="http://microsoft.com/ie8">IE8</a>.Собственно на этом можно было бы многозначительно пост закончить&#8230; </p>
<p>В общем в IE8 более этот трюк не работает. В currentStyle не попадают неизвестные браузеру свойства. Изящного решения пока не нашёл &#8211; если уж пользовались им, то просто замените непонятные буквы в css на <b>cellSpacing = &lt;число&gt;</b> вместо вычислений, которые были раньше&#8230;</p>
<p><strong>Update</strong> а вот <a href="http://designformasters.info/posts/sovmestimost-saytov-s-ie8/">переводная статья о других особенностях IE8</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2009/03/20/currentstyle-ie8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>border-spacing для IE</title>
		<link>http://miracle.rpz.name/2007/12/13/border-spacing-for-ie/</link>
		<comments>http://miracle.rpz.name/2007/12/13/border-spacing-for-ie/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 18:41:41 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ie]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/2007/12/13/border-spacing-for-ie/</guid>
		<description><![CDATA[Update: 06.11.08 ЕЩЁ раз обращаю внимание тех, кто бездумно скопирует и будет использовать приведённый рецепт (судя по количеству почитателей этого поста, сектантов культа Режь-Клей тьма) &#8211; если вам нужен border-spacing: 0, прочитайте ДО КОНЦА, а лучше сразу последнюю строчку. Делюсь грязным хаком, для добавления поддержки border-spacing в IE. Собственно сам css: table { border-spacing: 50px; [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
<strong>Update: 06.11.08</strong><br />
ЕЩЁ раз обращаю внимание тех, кто бездумно скопирует и будет использовать приведённый рецепт (судя по количеству почитателей этого поста, сектантов культа Режь-Клей тьма) &#8211; если вам нужен <strong>border-spacing: 0</strong>, прочитайте ДО КОНЦА, а лучше сразу последнюю строчку.</p>
</blockquote>
<p>Делюсь <span style="text-decoration: line-through;">грязным</span> хаком, для добавления поддержки <a title="тут говорят что IE не поддерживает это свойство (они-то ещё не знают!)" href="http://www.htmlbook.ru/css/border-spacing.html">border-spacing</a> в IE. Собственно сам css:</p>
<pre class="css">
table {
border-spacing: 50px; /* для всех кто в теме */
scrollbar-face-color: expression( runtimeStyle.scrollbarFaceColor = '#fff', cellSpacing = parseInt(currentStyle['border-spacing'])); /* угадайте кто?*/
}
</pre>
<p>Ну и пояснения: суть кода думаю ясна &#8211; вместо border-spacing, задать аналогичный cellspacing. Единственный (на мой взгляд) недостаток &#8211; считаю что border-spacing задан в <em>px</em>. Желающим <span style="text-decoration: line-through;">поизвращаться</span> поупражняться в переводе из других единиц &#8211; милости прошу.</p>
<p>Ну и вкратце о магический пассах, которые сплетены вокруг рабочего кода &#8211; они нужны для того чтобы <strong>expression</strong> выполнился ровно один раз (любопытным предлагаю заменить в вышепреведённом заклятье runtimeStyle&#8230; на <em> alert(&#8220;Интересно как же часто я покажусь?&#8221;)</em> ).</p>
<p>А за разъяснениями о runtimeStyle, currentStyle и разнице между ними отправляю к источнику сей мудрости &#8211; <a href="http://lusever.ru/proceedings/thin_css/index.html">докладу о &#8220;тонком css&#8221; для IE</a> с <a href="http://www.client2007.ru/">Client Side&#8217;2007</a>.</p>
<blockquote><p><strong>Update:</strong> описанный хак нужен лишь в случае если <strong>border-spacing отличен от нуля</strong>, в противном случае используется <em>border-collapse: collapse</em>.</p>
</blockquote>
<blockquote><p>
<strong>Update 20.03.2009</strong> <a href="http://miracle.rpz.name/2009/03/20/currentstyle-ie8/">Почему перестало работать в IE8 ?</a>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2007/12/13/border-spacing-for-ie/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jquery,IE и window.onload</title>
		<link>http://miracle.rpz.name/2006/10/11/jqueryie-%d0%b8-windowonload/</link>
		<comments>http://miracle.rpz.name/2006/10/11/jqueryie-%d0%b8-windowonload/#comments</comments>
		<pubDate>Wed, 11 Oct 2006 09:30:30 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=46</guid>
		<description><![CDATA[Ещё немного о jquery: замечательный метод ready в IE в некоторых случаях не желает работать. Документация честно предупреждает о том, что если для body уже есть onload-handler, то метод может не сработать. Но обработчиков нет, а ready срабатывает 2 раза из 10 попыток. При этом иногда IE ещё не успевает обсчитать некоторые свойства объектов (замечено [...]]]></description>
			<content:encoded><![CDATA[<p>Ещё немного о jquery:<br />
замечательный метод <a href="http://jquery.com/docs/EventModule/">ready</a> в IE в некоторых случаях не желает работать.<br />
Документация честно предупреждает о том, что если для body уже есть onload-handler, то метод может не сработать. Но обработчиков нет, а ready срабатывает 2 раза из 10 попыток. При этом иногда IE ещё не успевает обсчитать некоторые свойства объектов (замечено на offsetTop).<br />
А если отложить выполнение даже на 1 миллисекунду (через setTimeout), то всё выполняется так как задумано.<br />
На помощь приходит функция из <a href="http://xpoint.ru/know-how/JavaScript/PoleznyieFunktsii?28#ObrabotkaSobyitiy">БазыЗнанийXpoint-а</a> о которой я <a href="http://miracle.rpz.name/2005/12/06/%d0%a1%d1%87%d1%91%d1%82%d1%87%d0%b8%d0%ba%d0%b8-%d0%b8-onload-events/">писал раньше</a>. Работает как часы (но без timeout-ов).</p>
<p>Как же достал этот IE&#8230;<br />
<b><br />
</b></p>
<p>Technorati Tags: <a href="http://technorati.com/tag/web" rel="tag">web</a>, <a href="http://technorati.com/tag/dev" rel="tag">dev</a>, <a href="http://technorati.com/tag/js" rel="tag">js</a>, <a href="http://technorati.com/tag/ie" rel="tag">ie</a>, <a href="http://technorati.com/tag/onload" rel="tag">onload</a>, <a href="http://technorati.com/tag/jquery" rel="tag">jquery</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2006/10/11/jqueryie-%d0%b8-windowonload/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: miracle.rpz.name @ 2012-02-06 17:48:27 by W3 Total Cache -->
