<?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/"
	>
<channel>
<title>YaPro.Ru | RSS новости</title>
<atom:link href="http://yapro.ru/rss.xml" rel="self" type="application/rss+xml" />
<link>http://yapro.ru/</link>
<language>ru</language>
<description>Лента новостей сайта yapro.ru</description>
<generator>CMS yapro.ru</generator>
<item><title><![CDATA[HTC не видит Wifi]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/programs/htc-ne-vidit-wifi.html#page</guid>
<link>http://yapro.ru/web-master/programs/htc-ne-vidit-wifi.html</link>
<description><![CDATA[Столкнулся с такой проблемой - мой HTC не видит Wifi, в то же время iPhone видит созданную мной в Windows 7 сеть Wifi. Никакого роутера у меня нет, поэтому я настраивал обычный Wifi адаптер. Чтобы я не делал, какую бы сеть и вид подключения не создавал, ничего не получалось - HTC не хотел видеть вайфай! <br /><a href="http://yapro.ru/web-master/programs/htc-ne-vidit-wifi.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Программы]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Mon, 14 May 2012 10:18:42 +0400</pubDate>
<comments>http://yapro.ru/web-master/programs/htc-ne-vidit-wifi.html#comments</comments>
</item><item><title><![CDATA[Пропал скроллбар в Firefox12]]></title>
<guid isPermaLink="true">http://yapro.ru/news/propal-skrollbar-v-firefox12.html#page</guid>
<link>http://yapro.ru/news/propal-skrollbar-v-firefox12.html</link>
<description><![CDATA[Firefox обновился до 12 версии, заглянул на сайт и увидел, что пропал скроллбар. <br /><a href="http://yapro.ru/news/propal-skrollbar-v-firefox12.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Новости]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Thu, 26 Apr 2012 11:25:26 +0400</pubDate>
<comments>http://yapro.ru/news/propal-skrollbar-v-firefox12.html#comments</comments>
</item><item><title><![CDATA[Новая сборка от 21 марта 2012 года]]></title>
<guid isPermaLink="true">http://yapro.ru/news/novaya-sborka-ot-21-marta-2012-goda.html#page</guid>
<link>http://yapro.ru/news/novaya-sborka-ot-21-marta-2012-goda.html</link>
<description><![CDATA[Данная сборка посвящена исправлению ошибки метода проверки пересохранения изображений через форму в админке и различным неточностям, а так же обновлению версии tinymce . <br /><a href="http://yapro.ru/news/novaya-sborka-ot-21-marta-2012-goda.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Новости]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Wed, 21 Mar 2012 13:46:37 +0300</pubDate>
<comments>http://yapro.ru/news/novaya-sborka-ot-21-marta-2012-goda.html#comments</comments>
</item><item><title><![CDATA[Firefox 11 и tinymce]]></title>
<guid isPermaLink="true">http://yapro.ru/news/firefox-11-i-tinymce.html#page</guid>
<link>http://yapro.ru/news/firefox-11-i-tinymce.html</link>
<description><![CDATA[Вы наверняка заметили, что в Firefox 11 перестал должным образом работать визуальный редактор, чтобы он заработал приходится его выключить и включить. Поэтому, специально под это дело, мы обновили TinyMCE до версии 3.5b2. <br /><a href="http://yapro.ru/news/firefox-11-i-tinymce.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Новости]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Tue, 20 Mar 2012 15:37:32 +0300</pubDate>
<comments>http://yapro.ru/news/firefox-11-i-tinymce.html#comments</comments>
</item><item><title><![CDATA[Новая сборка от 13 марта 2012 года]]></title>
<guid isPermaLink="true">http://yapro.ru/news/novaya-sborka-ot-13-marta-2012-goda.html#page</guid>
<link>http://yapro.ru/news/novaya-sborka-ot-13-marta-2012-goda.html</link>
<description><![CDATA[Данная сборка посвящена исправлению ошибок и неточностей, а так же новому виду авторизации (теперь, в настройках Вы можете отменить одновременную авторизацию пользователя с разных компьютеров). <br /><a href="http://yapro.ru/news/novaya-sborka-ot-13-marta-2012-goda.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Новости]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Tue, 13 Mar 2012 10:16:14 +0300</pubDate>
<comments>http://yapro.ru/news/novaya-sborka-ot-13-marta-2012-goda.html#comments</comments>
</item><item><title><![CDATA[Новая сборка от 6 марта 2012 года]]></title>
<guid isPermaLink="true">http://yapro.ru/news/novaya-sborka-ot-6-marta-2012-goda.html#page</guid>
<link>http://yapro.ru/news/novaya-sborka-ot-6-marta-2012-goda.html</link>
<description><![CDATA[Данная сборка посвящена исправлению ошибок и неточностей, а так же улучшению работы некоторых моментов. <br /><a href="http://yapro.ru/news/novaya-sborka-ot-6-marta-2012-goda.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Новости]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Tue, 06 Mar 2012 11:54:43 +0300</pubDate>
<comments>http://yapro.ru/news/novaya-sborka-ot-6-marta-2012-goda.html#comments</comments>
</item><item><title><![CDATA[Три способа вызвать любопытство у читателя]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/promo/tri-sposoba-vizvati-lyubopitstvo-u-chitatelya.html#page</guid>
<link>http://yapro.ru/web-master/promo/tri-sposoba-vizvati-lyubopitstvo-u-chitatelya.html</link>
<description><![CDATA[Существует достаточно сильная, но легко ускользающая эмоция, которая может существенно прибавить входящий трафик, CTR и конверсии. При надлежащем использовании она способна увлечь вашего читателя настолько, что вы полностью завладеете его вниманием и сможете играючи конвертировать его в клиента. Но есть подвох. <br /><a href="http://yapro.ru/web-master/promo/tri-sposoba-vizvati-lyubopitstvo-u-chitatelya.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Продвижение]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Mon, 05 Mar 2012 13:16:59 +0300</pubDate>
<comments>http://yapro.ru/web-master/promo/tri-sposoba-vizvati-lyubopitstvo-u-chitatelya.html#comments</comments>
</item><item><title><![CDATA[Новая сборка от 17 февраля 2012 года]]></title>
<guid isPermaLink="true">http://yapro.ru/news/novaya-sborka-ot-17-fevralya-2012-goda.html#page</guid>
<link>http://yapro.ru/news/novaya-sborka-ot-17-fevralya-2012-goda.html</link>
<description><![CDATA[Кое что забыли в прошлой сборке, поэтому пришлось быстро сделать новую сборку. Что изменилось: /admin/modules/mail/subscribe.php /admin/modules/pages/right.php /inner/comments.php Что нового: /cron - новая директория /uploads/avatars/1.jpg - аватара Админа (если не устанавливать форум) Интересно: Теперь, чтобы информировать участников комментариев на страницах, используется скирпт cron/mail_page_comments/start.php Советую, добавить данный скрипт в CRON-задание, команда для запуска будет такая: ftp http://SITE.RU/cron/mail_page_comments/start.php или такая: wget http://SITE.RU/cron/mail_page_comments/start.php Применяйте ту, которая работает, а проверить работу можно так: /cron/mail_page_comments/timer.log - если этот файл изменяется (меняется дата изменения) значит CRON-задание работает. Будут вопросы или проблемы, пишите - приветствуется. <br /><a href="http://yapro.ru/news/novaya-sborka-ot-17-fevralya-2012-goda.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Новости]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Mon, 20 Feb 2012 11:44:25 +0300</pubDate>
<comments>http://yapro.ru/news/novaya-sborka-ot-17-fevralya-2012-goda.html#comments</comments>
</item><item><title><![CDATA[Новая сборка от 15 февраля 2012 года]]></title>
<guid isPermaLink="true">http://yapro.ru/news/novaya-sborka-ot-15-fevralya-2012-goda.html#page</guid>
<link>http://yapro.ru/news/novaya-sborka-ot-15-fevralya-2012-goda.html</link>
<description><![CDATA[Приветствую Вас дорогие поклонники YaPro CMS. Сегодня мы приготовили для Вас долгожданную сборку , а ждать пришлось ни мало - почти год! Однако, за этот год система стала еще удобнее, действительно более стабильна (мы выловили очень много багов), а главное намного приятней в плане удобства в разработки сайтов и модулей. <br /><a href="http://yapro.ru/news/novaya-sborka-ot-15-fevralya-2012-goda.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Новости]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Wed, 15 Feb 2012 11:47:45 +0300</pubDate>
<comments>http://yapro.ru/news/novaya-sborka-ot-15-fevralya-2012-goda.html#comments</comments>
</item><item><title><![CDATA[Раскрутка ВКонтакте программой Ботовод]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/promo/raskrutka-vkontakte-programmoy-botovod.html#page</guid>
<link>http://yapro.ru/web-master/promo/raskrutka-vkontakte-programmoy-botovod.html</link>
<description><![CDATA[Сейчас только очень ленивый не интересовался продвижением в социальных сетях. Вероятно, в будущем социальная раскрутка станет даже более значимой чем, например, SEO. В США еще полгода назад трафик переходов с Facebook превысил аналогичный показатель поисковика Google. В рунете этот процесс только набирает обороты, и наиболее популярной сетью остается ВКонтакте. Начинать раскучиваться стоит именно в ней. <br /><a href="http://yapro.ru/web-master/promo/raskrutka-vkontakte-programmoy-botovod.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Продвижение]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Fri, 13 Jan 2012 14:23:12 +0300</pubDate>
<comments>http://yapro.ru/web-master/promo/raskrutka-vkontakte-programmoy-botovod.html#comments</comments>
</item><item><title><![CDATA[SEO план Стива Вайдемана]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/promo/seo-plan-stiva-vaydemana.html#page</guid>
<link>http://yapro.ru/web-master/promo/seo-plan-stiva-vaydemana.html</link>
<description><![CDATA[Независимый эксперт по SEO Стив Вайдеман на страницах популярного блога SEOmoz предложил базовый план продвижения, рассчитанный на 6-12 месяцев работы. Автор достаточно свободно относится к инструментарию и предлагает читателю выбрать его самостоятельно. Это могут быть самые обычные электронные таблицы или же приложения для управления проектами. <br /><a href="http://yapro.ru/web-master/promo/seo-plan-stiva-vaydemana.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Продвижение]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Tue, 10 Jan 2012 11:32:29 +0300</pubDate>
<comments>http://yapro.ru/web-master/promo/seo-plan-stiva-vaydemana.html#comments</comments>
</item><item><title><![CDATA[Бесплатные инструменты пентестера веб-приложений]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/unix/13149716864e60e026deb80.html#page</guid>
<link>http://yapro.ru/web-master/unix/13149716864e60e026deb80.html</link>
<description><![CDATA[В данной статье я расскажу о наиболее популярных бесплатных инструментах при пентестинге (тесты на проникновение) веб-приложений в режиме &laquo;черного ящика&raquo;. Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. В обзор включены следующие категории продуктов: Сетевые сканеры Сканеры брешей в веб-скриптах Эксплойтинг Автомазация инъекций Дебаггеры (снифферы, локальные прокси и т.п.) <br /><a href="http://yapro.ru/web-master/unix/13149716864e60e026deb80.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Unix]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Fri, 02 Sep 2011 17:46:08 +0400</pubDate>
<comments>http://yapro.ru/web-master/unix/13149716864e60e026deb80.html#comments</comments>
</item><item><title><![CDATA[Firefox тоже умеет ставить многоточие]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/javascript/firefox-toje-umeet-staviti-mnogotochie.html#page</guid>
<link>http://yapro.ru/web-master/javascript/firefox-toje-umeet-staviti-mnogotochie.html</link>
<description><![CDATA[Время от времени возникают задачи, где было бы очень полезно уметь обрубать строчки до определенной длины, оставляя в конце многоточие. Как правило это необходимо, когда нужно вывести ровный табличный список заранее неизвестных значений, вроде списка писем или названий объектов/файлов в разнообразных веб-интерфейсах. Такие задачи являются, наверное единственным поводом, чтобы обычно ненавидащие Internet Explorer кодеры, сказали пару неласковых слов в сторону Firefox. А причина в том, что Explorer поддерживает (пока еще, но должно появиться в CSS3) нестандартное свойство text-overflow, а Firefox &mdash; нет ( глюк № 312156 ). Даже Opera и Safari дают возможность воспользоваться нестандартной фичей. Что за text-overflow Для незнакомых с этим CSS-свойством товарищей скажу пару слов о нем. Известно, что задавая размеры какого-нибудь блокового элемента, все его содержимое, не влезающие в родительские размеры элементарно... торчат из него. А в CSS есть свойство (overflow), которым можно задать что делать с торчащими частями внутренных элементов. Варианта по-сути три: показывать поверх или снизу рядом расположенных элементов (visible, по-умолчанию), обрезать и не показывать ничего (hidden) и наконец &mdash; показать полосы прокрутки, чтобы пользователь все-таки смог увидеть что там (scroll и auto &mdash; подробности в описании свойства). Все это конечно очень хорошо, но в случае, когда торчащие части скрыты, часто возникает очень неприятный эффект срезанной посередине буквы. Это должно быть видно в следующем примере (если строчка не обрезается по середине буквы &mdash; поиграйтесь с размерами окна браузера): Пример 1: обрезание строки посередине буквы &lt;div style=&quot; width: 100%; white-space: nowrap; overflow: hidden; &quot; &gt; Текстовая строка, которая не переносится и поэтому может быть обрезана родителем. &lt;/div&gt; Подобное обрезание текста может быть расценено отрицательно как с эстетической точки зредия (некрасиво), так и с точки зрения целостности представления информации (нет подсказки пользователю, что это не весь текст). Очень простое решение применяется в различных операционных системах, когда необходимо отобразить длинное название файла, которое не помещается &mdash; строка обрезается и в конце (в Mac OS X ~посередине) появляются три точки (или знак многоточия). С одной стороны, визуально название не длиннее максимально возможного, с другой &mdash; дается подсказка пользователю, что совершив какие-то действия (наведя мышку на название, кликнув на него) можно узнать полностью всю строку. Для того, чтобы сделать подобное в Internet Explorer (если не изменяет память еще со времен четвертой версии) существует специальное CSS-свойство text-overflow , которому можно задать значение ellipsis . Как это работает видно на следующем примере (не видите многоточие &mdash; уменьшите браузер): Пример 2: обрезание строки с многоточием &lt;div class=&quot; ellipsis &quot; &gt; Текстовая строка, которая не переносится и поэтому может быть обрезана родителем. &lt;/div&gt; Как сделать обрезание многоточием Во втором примере использовал класс ellipsis . В нем собраны все необходимые значения, которые позволяют добиться необходимого эффекта в максимальном количестве браузеров. Его определение выглядит так: .ellipsis { width: 100% ; overflow: hidden ; white-space: nowrap ; text-overflow: ellipsis ; -o-text-overflow: ellipsis ; -moz-binding: url('/examples/text-overflow.xml#ellipsis') ; } Первые три строчки &mdash; подготовительная работа. Для того, чтобы обрезались буквы с многоточием, текст в блоке должен быть однострочным, т. е. текст не должен переноситься ( 02 ) и сами блок должен обрезаться ( 03-04 ) . Ширину указываем для Internet Explorer, который не будет обрезать строку, если блок не переведен в т. н. layout mode (об этом в другой статье). В четвертой строке указываем, что текст должен обрезаться многоточием для Internet Explorer и Safari, в пятой &mdash; для Opera (см. врезку &laquo;соблюдаем стандарты&raquo;). Соблюдаем стандарты Свойство text-overflow все еще не является стандартным и разного рода валидаторы по идее должны выдавать ошибку, встретив его в коде. Opera использует префикс &laquo; -o- &raquo; перед ним, поскольку это правильный метод для объявления нестандартных свойств в CSS. Safari тоже так умеет. И если вы озабочены тем, чтобы ваш код не только работал в разных браузерах, но и валидаторы при этом не ругались, то следует вынести четвертую строку в отдельное объявление стилей для Internet Explorer (комментарии с условиями), а для Safari использовать свойство -webkit-text-overflow , которое является синонимом, но при этом не считается ошибкой. А вот задумка этой статьи заключена в седьмой строчке: -moz-binding: url('/examples/text-overflow.xml#ellipsis') ; В ней указано, что следует использовать специальную &laquo;обвязку&raquo; (binding), которая поддерживается Firefox. Правила обвязки описаны во внешнем XML-файле &mdash; в данном случае /examples/text-overflow.xml . Поскольку в одном XML-файле можно включить несколько обвязок, то нужная указывается якорем в конце &mdash; #ellipsis . Содержимое файла /examples/text-overflow.xml &lt;?xml version=&quot;1.0&quot;?&gt; &lt; bindings xmlns = &quot;http://www.mozilla.org/xbl&quot; xmlns:xul = &quot;http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul&quot; &gt; &lt; binding id = &quot;ellipsis&quot; &gt; &lt; content &gt; &lt; xul:label crop = &quot;end&quot; style = &quot;width: 100%;&quot; &gt;&lt; children / &gt;&lt;/ xul:label &gt; &lt;/ content &gt; &lt; implementation &gt; &lt; method name = &quot;setTextContentToValue&quot; &gt; &lt; body &gt; &lt;![CDATA[ var eDescription = document.getAnonymousNodes(this)[0]; if (eDescription) eDescription.value = this.textContent; // ]]&gt; &lt;/ body &gt; &lt;/ method &gt; &lt; constructor &gt;setTextContentToValue();&lt;/ constructor &gt; &lt;/ implementation &gt; &lt; handlers &gt; &lt; handler event = &quot;DOMSubtreeModified&quot; &gt;setTextContentToValue();&lt;/ handler &gt; &lt;/ handlers &gt; &lt;/ binding &gt; &lt; binding id = &quot;none&quot; &gt; &lt; content &gt;&lt; children / &gt;&lt;/ content &gt; &lt;/ binding &gt; &lt;/ bindings &gt; Для использования этого метода, вам нужно скопировать файл с обвязками на сервер, где будете использовать класс, и указать к нему правильный путь. Как работает обвязка Обвязки элементов, это внешние файлы написанные с помощью XBL (XML Binding Language). Это такой аналог . htc-файлов, которые использует Internet Explorer (вероятность, что слышали про них &mdash; больше). Его даже предложили в качестве стандартного языка в W3C , но никто, кроме браузеров на основе Gecko, не поддерживает его. С помощью обвязок, можно на простой гипертекстовой странице использовать элементы, которые используются для построения всего интерфейса Firefox. И если вспомнить, что в интерфейсе самого Fx уже встречаются элементы, текст в которых обрезается многоточием, то остается лишь попытаться их использовать. Почему именно обвязка Просто показалось, что это лучшее решение. Как минимум для большинства ситуаций, которые мне встречались в жизни (см. ниже какие ограничения). В качестве плюсов, могу перечислить: это решение исключительно для браузеров на базе Gecko; не задействованы сложные скрипты, за исключение тех, что уже встроены в оболочку; не обрабатываются недостаточно часто возникающие события типа onresize , что означает гладкая работа. Вообще, показывается все как надо. Кстати, в правой колонке наверху есть ссылки на другие варианты обрезания, которые я нарыл в сети. Итак, вкратце расскажу про XML-файл, в котором описывают обвязки. Он должен быть специального формата. Может содержать не только одну, но и несколько обвязок. Корневой элемент &mdash; &lt;bindings/&gt; , в котором располагаются собственно обвязки &mdash; элементы &lt;binding/&gt; . Должен быть способ обратиться к каждой из них, поэтому у каждой задается атрибут id , в котором и записано имя. Именно это имя используется в значении css-свойства после знака # . В коде, который представлен ниже, видно, что задана одна обвязка с именем ellipsis . О ней пойдет речь в первую очередь. &lt;?xml version=&quot;1.0&quot;?&gt; &lt;bindings xmlns=&quot; http://www.mozilla.org/xbl &quot; xmlns:xul=&quot; http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul &quot; &gt; &lt;binding id=&quot; ellipsis &quot; &gt; &lt;content&gt; &lt;xul:label crop=&quot; end &quot; style=&quot; width: 100%; &quot; &gt; &lt;children /&gt; &lt;/xul:label&gt; &lt;/content&gt; &lt;implementation&gt; &lt;method name=&quot; setTextContentToValue &quot; &gt; &lt;body&gt; &lt;![CDATA[ var eDescription = document. getAnonymousNodes(this)[0]; if (eDescription) eDescription. value = this.textContent; // ]]&gt; &lt;/body&gt; &lt;/method&gt; &lt;constructor&gt; setTextContentToValue(); &lt;/constructor&gt; &lt;/implementation&gt; ... &lt;/binding&gt; ... &lt;/bindings&gt; Видно, что внутри обвязки расположены два элемента &mdash; &lt;content&gt; и &lt;implementation&gt; . &lt;content&gt; Элемент &lt;content&gt; содержит весь код, которым будет обрамлен обвязываемый элемент. Все элементы, которые перечислены в нем, будут отображаться браузером, как будто они там, но на самом деле они будут недоступны через DOM, т. е. их нельзя ни увидеть ни изменить с помощью скрипта на странице. Они &mdash; анонимные элементы. Единственный элемент, который будет доступен &mdash; это сам обвязываемый элемент, содержание которого можно вставить в обвязку с помощью элемента &lt;children /&gt; . Именно в этом месте проще всего использовать элементы используемые в интерфейсе самого браузера &mdash; они описаны в языке XUL (XML User Interface Language) &mdash; чтобы они появились в обычной HTML-странице. В нашем случае, мы заключаем элемент, чье содержание должно обрезаться многоточием, в элементе &lt;xul:label&gt; . На самом деле в XUL есть два элемента, которые умеют обрезать строку. Второй из них &mdash; &lt;xul:description&gt; . Я выбрал &lt;xul:label&gt; поскольку его название короче. К сожалению есть одна небольшая особенность элементов &lt;xul: label&gt; и &lt;xul: description&gt; &mdash; они не умеют обрезать текст, который расположен внутри элемента в качестве дочерных узлов. Они умеют делать то, что нам нужно только с текстом, расположенным в атрибуте value . &lt;implementation&gt; Именно поэтому нам понадобиться второй элемент про который упоминалось ранее &mdash; &lt;implementation&gt; . В нем можно описать все методы, используемые обвязкой, а также можно задать конструктор &mdash; метод, который будет вызван сразу после создание всех элементов обвязки, в котором можно указать все дополнительные действия, недоступные синтаксису в &lt;content&gt; . У нас как раз есть задача, которую нужно решить, для того, чтобы показать обрезанный текст правильно &mdash; необходимо поставить весь текст из обвязываемого элемена в атрибут value элемента &lt;xul:label&gt; . И для этой задачи определим метод, который будет делать требуемую операцию &mdash; setTextContentToValue . Потом этот метод можно будет вызывать из других методов обвязки как обычную JavaScript-функцию. Метод пишется на языке JavaScript. Но к обычным функциям и методам здесь доступны еще методы для нахождения анонимных элементов, которые создаются в &lt;content&gt; . Один из этих методов &mdash; document. getAnonymousNodes &mdash; достает все анонимные узлы созданные для указаного в параметре обвязываемого элемента. Он возвращает список узлов (как например document. getElementsByTagName), а поскольку в нашем случае мы создали единственный анонимный элемент, то можем смело указать, что требуемый элемент &mdash; нулевой (см. стр. 10 ) . Если мы получили указатель на элемент &lt;xul:label&gt; , то уже можем задать значение для его атрибута value &mdash; взяв значение textContent у обвязываемого элемента (кто не знает, это аналог свойства innerText в Internet Explorer) ( 11 ) . Теперь остается только вызвать этого метода из конструктора. Коструктор расположен, как несложно догадаться в элементе &lt;constructor&gt; . И наша обвязка почти готова &mdash; ей уже можно пользоваться (см. пример 2). Что еще не хватает Для конкретной задачи, для которой я начал делать все это, было недостаточно научиться обрезать красиво строку. Передо мной стояли еще две задачи, которые потребовали еще немного расширить файл с обвязками. Поменять обрезанный текст Первое, что понадобилось &mdash; возможность поменять текст строки. Элементарно поменял значение innerHTML для обвязываемого элемента. И сразу-же понял, что во всех браузерах все хорошо, а в Firefox ничего не происходит. Понятно почему ничего не происходит. Просто конструктор вызывается только один раз, когда обвязка создается. Если мы хотим, чтобы метод setTextContentToValue вызывался еще и в случае изменения строки, необходимо все-таки перехватить событие. К счастью, в XBL есть штатный способ перехвата любых событий. Для этого в обвязке необходимо добавить элемент &lt;handlers&gt; в котором создать обработчики. Каждый обработчик, это элемент &lt;handler&gt; в чьем атрибуте event нужно указать событие по которому он будет вызван. В нашем случае это DOMSubtreeModified . А внутри обработчика вызываем уже готовый метод: ... &lt;handlers id=&quot; none &quot; &gt; &lt;handler event=&quot; DOMSubtreeModified &quot; &gt; setTextContentToValue(); &lt;/handler&gt; &lt;/handlers&gt; После этого, любое изменение содержания элемента, т. е. изменение строки текста, которая обрезается будет отображаться правильно и в Firefox. Убрать обрезание Как писал в начале статьи, многоточие служит указателем для пользователя, что за краю элемента кроется еще текст. Есть разные способы показать этот текст и самый простой из них &mdash; убрать обрезание, указав CSS-свойству overflow значение visible . Это сработает во всех браузерах, которые делают обрезание штатными средствами, но в Firefox анонимный элемент &lt;xul:label&gt; никуда не денется. И для того, чтобы его убрать, необходимо отменить обвязку. К сожалению нельзя указать что-нибудь вроде: .visible { -moz-binding: none ; } Т. е. указать можно, но это не приведет к желаемом результате. Убрать обвязку можно, заменив ее на другую обвязку. Назвал ее другим именем &mdash; none и расположил в том-же файле в качестве еще одного элемента &lt;binding&gt; . В качестве содержания этой обвязки присутствует всего-лишь один элемент &mdash; &lt;children /&gt; . Вставим его на месте 18 строки предыдущего примера: ... &lt;binding id=&quot; none &quot; &gt; &lt;content&gt; &lt;children /&gt; &lt;/content&gt; &lt;/binding&gt; Теперь, с его помощью можно убрать обвязку и показать строку полностью, например при наведение курсора мыши на строку: div.show-on-hover: hover { position: relative ; z-index: 2 ; overflow: visible ; -moz-binding: url('/examples/text-overflow. xml#none') ; } div.show-on-hover: hover span { background: #333333 ; color: white ; } Что получилось, можно увидеть в следующий пример (не работает в Internet Explorer до 8й версии, но этот недостаток не рассматривается в данной статье): Пример 3: показ полной строки при наведении мыши &lt;div class=&quot; ellipsis show-on-hover &quot; &gt; &lt;span&gt; Текстовая строка, которая не переносится и поэтому может быть обрезана родителем. &lt;/span&gt; &lt;/div&gt; Какие ограничения накладывает это решение Используя анонимный элемент &lt;xul:label&gt; мы теряем возможность выделять и копировать текст мышкой. Во многих случаях это не критично, тем более, что выделив кусок текста перед и после обрезанной строки, можно скопировать и текст, который мы перекрыли. Но тем не менее нельзя выделить кусок этого текста и выделяя текст всей странице эти строки останутся невыделенными. Второе ограничение связано с тем, что в Firefox, в отличие от остальных браузерах, нельзя использовать строчные элементы в обрезаемом тексте. Любые оформления текста будут потеряны. Ссылки не будут работать. Это связано с тем, что текст копируется в атрибут value, где разметка не может работать. Если выделение текста и вложенные элементы для вас не являются критическими &mdash; используйте вариант с XML-обвязкой. Источник: leechy.ru <br /><a href="http://yapro.ru/web-master/javascript/firefox-toje-umeet-staviti-mnogotochie.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[JavaScript]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Mon, 15 Aug 2011 14:34:55 +0400</pubDate>
<comments>http://yapro.ru/web-master/javascript/firefox-toje-umeet-staviti-mnogotochie.html#comments</comments>
</item><item><title><![CDATA[Загрузка XML-файла]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/javascript/zagruzka-xml-fayla.html#page</guid>
<link>http://yapro.ru/web-master/javascript/zagruzka-xml-fayla.html</link>
<description><![CDATA[Гораздо легче работать с данными в формате XML &mdash; они гораздо более удобочитаемые, а еще с их помощью можно хранить древообразные структуры в их естественном виде. <br /><a href="http://yapro.ru/web-master/javascript/zagruzka-xml-fayla.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[JavaScript]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Mon, 15 Aug 2011 14:28:14 +0400</pubDate>
<comments>http://yapro.ru/web-master/javascript/zagruzka-xml-fayla.html#comments</comments>
</item><item><title><![CDATA[Защита сервера от ошибок в phpMyAdmin]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/unix/zashita-servera-ot-oshibok-v-phpmyadmin.html#page</guid>
<link>http://yapro.ru/web-master/unix/zashita-servera-ot-oshibok-v-phpmyadmin.html</link>
<description><![CDATA[На моем веб-сервере стоит ISPmanager, в нем есть такая особенность, что можно заходить в phpMyAdmin набрав в адресной строке браузера такой адрес: https://yapro.ru/myadmin/ Зная об этом, злоумышленник легко может проверить Ваш phpMyAdmin на наличие багов (а они есть в старых версиях) и дальше работать с Вашими сайтами как ему заблагорассудится (в зависимости от существующих ошибок в Вашей версии phpMyAdmin). <br /><a href="http://yapro.ru/web-master/unix/zashita-servera-ot-oshibok-v-phpmyadmin.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Unix]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Fri, 08 Jul 2011 16:38:20 +0400</pubDate>
<comments>http://yapro.ru/web-master/unix/zashita-servera-ot-oshibok-v-phpmyadmin.html#comments</comments>
</item><item><title><![CDATA[HTML5 - новые виды атак]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/javascript/ataki-s-pomoshiyu-html5.html#page</guid>
<link>http://yapro.ru/web-master/javascript/ataki-s-pomoshiyu-html5.html</link>
<description><![CDATA[HTML 5 переопределяет основные правила для разработки веб-приложений, обеспечивая богатый набор технических характеристик и расширяя существующие технические особенности и программный интерфейс. Безопасность HTML5 &mdash; еще не изученная область, потому что функции стандарта HTML5 пока не были заимствованы существующими веб-приложениями (если не говорить об экспериментальных моделях), и считается, что пока этого не произойдет, пользователям волноваться не о чем. <br /><a href="http://yapro.ru/web-master/javascript/ataki-s-pomoshiyu-html5.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[JavaScript]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Thu, 16 Jun 2011 11:32:09 +0400</pubDate>
<comments>http://yapro.ru/web-master/javascript/ataki-s-pomoshiyu-html5.html#comments</comments>
</item><item><title><![CDATA[Социальные рекомендации Twitter в Google]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/promo/socialinie-rekomendacii-twitter-v-google.html#page</guid>
<link>http://yapro.ru/web-master/promo/socialinie-rekomendacii-twitter-v-google.html</link>
<description><![CDATA[Эта статья о том, какое значение приобретают социальные сети в поисковой выдаче и куда мы все катимся. <br /><a href="http://yapro.ru/web-master/promo/socialinie-rekomendacii-twitter-v-google.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Продвижение]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Sat, 11 Jun 2011 12:42:42 +0400</pubDate>
<comments>http://yapro.ru/web-master/promo/socialinie-rekomendacii-twitter-v-google.html#comments</comments>
</item><item><title><![CDATA[Ашманов про стартапы]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/promo/ashmanov-pro-startapi.html#page</guid>
<link>http://yapro.ru/web-master/promo/ashmanov-pro-startapi.html</link>
<description><![CDATA[И это еще не все... <br /><a href="http://yapro.ru/web-master/promo/ashmanov-pro-startapi.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Продвижение]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Tue, 03 May 2011 14:07:32 +0400</pubDate>
<comments>http://yapro.ru/web-master/promo/ashmanov-pro-startapi.html#comments</comments>
</item><item><title><![CDATA[Skype Distributed Database Architecture]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/interesnoe/skype-distributed-database-architecture.html#page</guid>
<link>http://yapro.ru/web-master/interesnoe/skype-distributed-database-architecture.html</link>
<description><![CDATA[<br /><a href="http://yapro.ru/web-master/interesnoe/skype-distributed-database-architecture.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Интересное]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Thu, 07 Apr 2011 20:52:34 +0400</pubDate>
<comments>http://yapro.ru/web-master/interesnoe/skype-distributed-database-architecture.html#comments</comments>
</item><item><title><![CDATA[Erlang - лекарство при высоких нагрузках]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/interesnoe/erlang-lekarstvo-pri-visokih-nagruzkah.html#page</guid>
<link>http://yapro.ru/web-master/interesnoe/erlang-lekarstvo-pri-visokih-nagruzkah.html</link>
<description><![CDATA[<br /><a href="http://yapro.ru/web-master/interesnoe/erlang-lekarstvo-pri-visokih-nagruzkah.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Интересное]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Tue, 05 Apr 2011 20:52:34 +0400</pubDate>
<comments>http://yapro.ru/web-master/interesnoe/erlang-lekarstvo-pri-visokih-nagruzkah.html#comments</comments>
</item><item><title><![CDATA[Amazon Web Services: инструменты обеспечения масштабируемости и отказоустойчивости]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/interesnoe/amazon-web-services-instrumenti-obespecheniya-masshtabiruemosti-i-otkazoustoychivosti.html#page</guid>
<link>http://yapro.ru/web-master/interesnoe/amazon-web-services-instrumenti-obespecheniya-masshtabiruemosti-i-otkazoustoychivosti.html</link>
<description><![CDATA[<br /><a href="http://yapro.ru/web-master/interesnoe/amazon-web-services-instrumenti-obespecheniya-masshtabiruemosti-i-otkazoustoychivosti.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Интересное]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Sun, 03 Apr 2011 20:52:34 +0400</pubDate>
<comments>http://yapro.ru/web-master/interesnoe/amazon-web-services-instrumenti-obespecheniya-masshtabiruemosti-i-otkazoustoychivosti.html#comments</comments>
</item><item><title><![CDATA[Архитектура Бегуна: Обеспечение High Load &amp; High Availability]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/interesnoe/arhitektura-beguna-obespechenie-high-load-amp-high-availability.html#page</guid>
<link>http://yapro.ru/web-master/interesnoe/arhitektura-beguna-obespechenie-high-load-amp-high-availability.html</link>
<description><![CDATA[<br /><a href="http://yapro.ru/web-master/interesnoe/arhitektura-beguna-obespechenie-high-load-amp-high-availability.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Интересное]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Thu, 31 Mar 2011 20:52:34 +0400</pubDate>
<comments>http://yapro.ru/web-master/interesnoe/arhitektura-beguna-obespechenie-high-load-amp-high-availability.html#comments</comments>
</item><item><title><![CDATA[Асинхронная обработка в высокопроизводительных системах]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/interesnoe/asinhronnaya-obrabotka-v-visokoproizvoditelinih-sistemah.html#page</guid>
<link>http://yapro.ru/web-master/interesnoe/asinhronnaya-obrabotka-v-visokoproizvoditelinih-sistemah.html</link>
<description><![CDATA[<br /><a href="http://yapro.ru/web-master/interesnoe/asinhronnaya-obrabotka-v-visokoproizvoditelinih-sistemah.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Интересное]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Tue, 29 Mar 2011 20:52:34 +0400</pubDate>
<comments>http://yapro.ru/web-master/interesnoe/asinhronnaya-obrabotka-v-visokoproizvoditelinih-sistemah.html#comments</comments>
</item><item><title><![CDATA[RESTful архитектура для масштабируемых систем]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/interesnoe/restful-arhitektura-dlya-masshtabiruemih-sistem.html#page</guid>
<link>http://yapro.ru/web-master/interesnoe/restful-arhitektura-dlya-masshtabiruemih-sistem.html</link>
<description><![CDATA[<br /><a href="http://yapro.ru/web-master/interesnoe/restful-arhitektura-dlya-masshtabiruemih-sistem.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Интересное]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Sun, 27 Mar 2011 20:52:34 +0400</pubDate>
<comments>http://yapro.ru/web-master/interesnoe/restful-arhitektura-dlya-masshtabiruemih-sistem.html#comments</comments>
</item><item><title><![CDATA[Хранение и быстрая отдача миллионов уникальных объектов (на примере подбора объявлений на партнерских сайтах Бегуна)]]></title>
<guid isPermaLink="true">http://yapro.ru/web-master/interesnoe/hranenie-i-bistraya-otdacha-millionov-unikalinih-obiektov-na-primere-podbora-obiyavleniy-na-partnerskih-saytah-beguna.html#page</guid>
<link>http://yapro.ru/web-master/interesnoe/hranenie-i-bistraya-otdacha-millionov-unikalinih-obiektov-na-primere-podbora-obiyavleniy-na-partnerskih-saytah-beguna.html</link>
<description><![CDATA[<br /><a href="http://yapro.ru/web-master/interesnoe/hranenie-i-bistraya-otdacha-millionov-unikalinih-obiektov-na-primere-podbora-obiyavleniy-na-partnerskih-saytah-beguna.html" target="_blank">Подробнее &#8230;</a>]]></description>
<category><![CDATA[Интересное]]></category>
<dc:creator>SiteUser</dc:creator>
<pubDate>Fri, 25 Mar 2011 20:52:34 +0300</pubDate>
<comments>http://yapro.ru/web-master/interesnoe/hranenie-i-bistraya-otdacha-millionov-unikalinih-obiektov-na-primere-podbora-obiyavleniy-na-partnerskih-saytah-beguna.html#comments</comments>
</item>
</channel>
</rss>
