<?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>AjaxBlog &#187; JavaScript</title>
	<atom:link href="http://ajaxblog.ru/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxblog.ru</link>
	<description>ajax, javascript, css, php</description>
	<lastBuildDate>Tue, 14 Jun 2011 19:37:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>JqueryWTP &#8211; плагин для Eclipse</title>
		<link>http://ajaxblog.ru/344</link>
		<comments>http://ajaxblog.ru/344#comments</comments>
		<pubDate>Tue, 19 Apr 2011 21:17:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Находки]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=344</guid>
		<description><![CDATA[Очень полезный плагин, позволяющий вам автодополнять методы Jquery. Плагин в работа Установка Инструкция на официальном сайте несколько устарела, по этому, приведу свою, которая точно работает. Скачиваем файл и запускаем файл. Появиться вот такая форма в поле Jar File &#8211; указываем &#8230; <a href="http://ajaxblog.ru/344">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Очень полезный плагин, позволяющий вам автодополнять методы Jquery.</p>
<h2>Плагин в работа</h2>
<p><img src="http://ajaxblog.ru/wp-content/uploads/2011/04/JqueryWTP-example.png" alt="" /></p>
<p><span id="more-344"></span></p>
<h2>Установка</h2>
<p>Инструкция на официальном сайте несколько устарела, по этому, приведу свою, которая точно работает.</p>
<ol>
<li><a href="http://code.google.com/a/eclipselabs.org/p/jquerywtp/downloads/list">Скачиваем файл</a> и запускаем файл.</li>
<li>Появиться вот такая форма <img src="http://ajaxblog.ru/wp-content/uploads/2011/04/JqueryWTP.png" alt="" width="575" height="152" />
<ul>
<li>в поле Jar File &#8211; указываем путь до файла org.eclipse.wst.jsdt.core_xxxxxxx.jar</li>
<li> в поле Output Dir &#8211; указываем путь, куда сохраняться пропатченный файл</li>
</ul>
</li>
<li>Смело жмем кнопку Generate</li>
<li>Заменяем старую версию файла на пропатченную.</li>
<li>Удаляем папку workspace/.metadata/.plugins/org.eclipse.wst.jsdt.core.</li>
<li>Запускаем eclipse.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/344/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Новая тема для jQuery UI &#8211; Aristo</title>
		<link>http://ajaxblog.ru/308</link>
		<comments>http://ajaxblog.ru/308#comments</comments>
		<pubDate>Mon, 07 Mar 2011 18:04:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Находки]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=308</guid>
		<description><![CDATA[Для одного из проектов нужно было найти красивую тему для jQuery UI. Стандартные мне некогда не нравились, а авторские стоили от 75$. И вот в результате случайного везения, я нашел свой идеал&#8230; Смотрим Качаем]]></description>
			<content:encoded><![CDATA[<p>Для одного из проектов нужно было найти красивую тему для jQuery UI.<br />
Стандартные мне некогда не нравились, а авторские стоили от 75$.<br />
И вот в результате случайного везения,  я нашел свой идеал&#8230;</p>
<p><span id="more-308"></span><a href="http://taitems.github.com/Aristo-jQuery-UI-Theme/" target="_blank">Смотрим</a> <a href="http://taitems.tumblr.com/post/482577430/introducing-aristo-a-jquery-ui-theme" target="_blank">Качаем</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/308/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JsUnit &#8211; тонкости настройки</title>
		<link>http://ajaxblog.ru/298</link>
		<comments>http://ajaxblog.ru/298#comments</comments>
		<pubDate>Mon, 31 Jan 2011 15:52:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jsunit]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=298</guid>
		<description><![CDATA[На чем писать модульные тесты для JavaScript. Вопрос не такой простой как кажется. В отличии от Java здесь нет признанного лидера. Для себя я выделил три фрэймворка о которые стоит упомянут: JsTestDriver &#8211; разработка ребят от google, позиционируется как универсальное &#8230; <a href="http://ajaxblog.ru/298">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>На чем писать модульные тесты для JavaScript. Вопрос не такой простой как кажется. В отличии от Java здесь нет признанного лидера. Для себя я выделил три фрэймворка о которые стоит упомянут:</p>
<ol>
<li><a href="http://code.google.com/p/js-test-driver/" target="_blank">JsTestDriver</a> &#8211; разработка ребят от google, позиционируется как универсальное решения для тестирования js.</li>
<li><a href="http://docs.jquery.com/QUnit" target="_blank">QUnit</a> &#8211; тест от разработчиков jquery, кстати свой фреймворк они тестирует этим тестом.</li>
<li><a href="http://www.jsunit.net/" target="_blank">JsUnit</a> &#8211; самый старый из представленных здесь фреймворков.</li>
</ol>
<p><span id="more-298"></span>Трудно сделать выбор, каждый из них справляется с поставленной задачей. Я остановлюсь на последнем , так как он позволяет запускать себя на приложениях содержащем только браузерный движок, и не требует дополнительных библиотек для своей работы.</p>
<h2>Как работает</h2>
<p>Не буду расписывать, как заставить это все работать. Здесь очень неплохая статья для начинающих.</p>
<p>http://www.simplecoding.org/jsunit-testiruem-javascript-kod.html</p>
<h2>Тонкости настройки</h2>
<p>Попробуем ответить на некоторые популярные предубеждения связанные с этим фреймворком.</p>
<ol>
<li><strong>jsunit не поддерживает наборы тестов&#8230;</strong><br />
читаем &#8211; <a href="http://www.jsunit.net/documentation/testSuites.html">Test Suites</a>&nbsp;</p>
<p>создаем файл testSuite.html</p>
<pre class="javascript" style="font-family: monospace;">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
&lt;head&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;

    &lt;title&gt;TestSuite&lt;/title&gt;

    &lt;link rel="stylesheet" type="text/css" href="css/jsUnitStyle.css"&gt;
    &lt;script type="text/javascript" src="app/jsUnitCore.js"&gt;&lt;/script&gt;
    <span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366cc;">"text/javascript"</span><span style="color: #339933;">&gt;</span>

        <span style="color: #003366; font-weight: bold;">function</span> testSuite<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
            <span style="color: #003366; font-weight: bold;">var</span> result <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> JsUnitTestSuite<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
            result.<span style="color: #660066;">addTestPage</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"unit-tests/exampleTest1.html"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
            result.<span style="color: #660066;">addTestPage</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"unit-tests/exampleTest2.html"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
            result.<span style="color: #660066;">addTestPage</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"unit-tests/exampleTest3.html"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
            result.<span style="color: #660066;">addTestPage</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"unit-tests/exampleTest4.html"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">return</span> result<span style="color: #339933;">;</span>
        <span style="color: #009900;">}</span>

        <span style="color: #003366; font-weight: bold;">function</span> suite<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
            <span style="color: #003366; font-weight: bold;">var</span> newsuite <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> JsUnitTestSuite<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
            newsuite.<span style="color: #660066;">addTestSuite</span><span style="color: #009900;">(</span>testSuite<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">return</span> newsuite<span style="color: #339933;">;</span>
        <span style="color: #009900;">}</span>
    <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
&lt;/head&gt;

&lt;body&gt;
&lt;h1&gt;TestSuite&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Причем ничего нам не мешает вкладывать один набор тестов в другой.</li>
<li><strong>jsunit не позволяет автоматически запускать тесты&#8230;</strong><br />
читаем &#8211; <a href="http://www.jsunit.net/documentation/standardQueryStrings.html">Standard query strings</a>&nbsp;</p>
<ul>
<li>создаем копию файла testRunner.html</li>
<li>назовем его testRunnerAuto.html</li>
<li>находим следующие строчки кода
<pre class="javascript" style="font-family: monospace;">    <span style="color: #003366; font-weight: bold;">var</span> params <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> JsUnit.<span style="color: #660066;">Params</span><span style="color: #009900;">(</span>document.<span style="color: #660066;">location</span>.<span style="color: #660066;">search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> testManager<span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> tracer<span style="color: #339933;">;</span>
</pre>
</li>
<li>вставляем код
<pre class="javascript" style="font-family: monospace;"><span style="color: #003366; font-weight: bold;">var</span> params <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> JsUnit.<span style="color: #660066;">Params</span><span style="color: #009900;">(</span>document.<span style="color: #660066;">location</span>.<span style="color: #660066;">search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>

params.<span style="color: #660066;">hash</span><span style="color: #009900;">[</span><span style="color: #3366cc;">'testpage'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #3366cc;">'http://localhost/testSuite.html'</span><span style="color: #339933;">;</span>
params.<span style="color: #660066;">hash</span><span style="color: #009900;">[</span><span style="color: #3366cc;">'autorun'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #3366cc;">'true'</span><span style="color: #339933;">;</span>

<span style="color: #003366; font-weight: bold;">var</span> testManager<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> tracer<span style="color: #339933;">;</span>
</pre>
<p>Тем самым при запуске страницы testRunnerAuto.html мы загрузим подготовлены нами набор тестов testSuite.html, и сразу после загрузке произойдет автоматический запуск тестов.</li>
</ul>
</li>
<li><strong>jsunit не может тестировать асинхронные запросы&#8230;</strong><br />
читаем &#8211; <a href="http://www.jsunit.net/documentation/setUpTearDown.html">setUp() and tearDown()</a>&nbsp;</p>
<pre class="javascript" style="font-family: monospace;"><span style="color: #003366; font-weight: bold;">var</span> native<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> encode<span style="color: #339933;">;</span>
 
<span style="color: #003366; font-weight: bold;">function</span> setUpPage<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    <span style="color: #006600; font-style: italic;">//ждем когда загрузиться страница и отработают все запросы </span>
    setUpPageStatus <span style="color: #339933;">=</span> <span style="color: #3366cc;">'running'</span><span style="color: #339933;">;</span>
 
    req1 <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    req1.<span style="color: #000066;">open</span><span style="color: #009900;">(</span><span style="color: #3366cc;">'GET'</span><span style="color: #339933;">,</span> <span style="color: #3366cc;">"data/base64.native"</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    req1.<span style="color: #660066;">onreadystatechange</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span>req1.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #cc0000;">4</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
	    native <span style="color: #339933;">=</span> req1.<span style="color: #660066;">responseText</span><span style="color: #339933;">;</span>
            setUpPageComplete<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    	<span style="color: #009900;">}</span>
    <span style="color: #009900;">}</span><span style="color: #339933;">;</span>
    req1.<span style="color: #660066;">send</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
 
    req2 <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    req2.<span style="color: #000066;">open</span><span style="color: #009900;">(</span><span style="color: #3366cc;">'GET'</span><span style="color: #339933;">,</span> <span style="color: #3366cc;">"data/base64.encode"</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    req2.<span style="color: #660066;">onreadystatechange</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span>req2.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #cc0000;">4</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
	    encode <span style="color: #339933;">=</span> req2.<span style="color: #660066;">responseText</span><span style="color: #339933;">;</span>
	    setUpPageComplete<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">}</span>
    <span style="color: #009900;">}</span><span style="color: #339933;">;</span>
    req2.<span style="color: #660066;">send</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
 
<span style="color: #003366; font-weight: bold;">function</span> setUpPageComplete<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span><span style="color: #009900;">(</span>native <span style="color: #339933;">!=</span> <span style="color: #3366cc;">""</span><span style="color: #009900;">)</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">(</span>encode <span style="color: #339933;">!=</span> <span style="color: #3366cc;">""</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
        <span style="color: #006600; font-style: italic;">//все запросы отработались, можно запускать тесты</span>
        setUpPageStatus <span style="color: #339933;">=</span> <span style="color: #3366cc;">'complete'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span>
 
 
<span style="color: #003366; font-weight: bold;">function</span> testUtilsCodecRecursion<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    assertEquals<span style="color: #009900;">(</span>Utils.<span style="color: #660066;">decode</span><span style="color: #009900;">(</span>z.<span style="color: #660066;">encode</span><span style="color: #009900;">(</span>native<span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span> native<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
 
 
<span style="color: #003366; font-weight: bold;">function</span> testUtilsCodecEncode<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    assertEquals<span style="color: #009900;">(</span>Utils.<span style="color: #660066;">encode</span><span style="color: #009900;">(</span>native<span style="color: #009900;">)</span><span style="color: #339933;">,</span> encode<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
 
<span style="color: #003366; font-weight: bold;">function</span> testUtilsCodecDecode<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    assertEquals<span style="color: #009900;">(</span>Utils.<span style="color: #660066;">decode</span><span style="color: #009900;">(</span>encode<span style="color: #009900;">)</span><span style="color: #339933;">,</span> native<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span></pre>
</li>
</ol>
<h2>Дополнительная литература</h2>
<ul>
<li><a href="http://web-dev-ru.blogspot.com/2009/11/javascript-jstestdriver.html" target="_blank">http://web-dev-ru.blogspot.com/2009/11/javascript-jstestdriver.html</a></li>
<li><a href="http://msdn.microsoft.com/en-us/scriptjunkie/ff452703.aspx" target="_blank">http://msdn.microsoft.com/en-us/scriptjunkie/ff452703.aspx</a></li>
<li><a href="http://net.tutsplus.com/tutorials/javascript-ajax/how-to-test-your-javascript-code-with-qunit/" target="_blank">http://net.tutsplus.com/tutorials/javascript-ajax/how-to-test-your-javascript-code-with-qunit/</a></li>
<li><a href="http://addyosmani.com/blog/jquery-testing-tools/" target="_blank">http://addyosmani.com/blog/jquery-testing-tools/</a></li>
<li><a href="http://pivotallabs.com/blabs/categories/jsunit" target="_blank">http://pivotallabs.com/blabs/categories/jsunit</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/298/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Скрещиваем jqGrid и Open Flash Chart</title>
		<link>http://ajaxblog.ru/264</link>
		<comments>http://ajaxblog.ru/264#comments</comments>
		<pubDate>Wed, 28 Oct 2009 18:42:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Мои проекты]]></category>
		<category><![CDATA[jqGrid]]></category>
		<category><![CDATA[Open Flash Chart]]></category>
		<category><![CDATA[SWFobject]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=264</guid>
		<description><![CDATA[Вывод данных в виде таблице удобно тем, что предостовляет большие возможности работы с ними (сортировка, фильтрация, выборки). И с этим прекрасно справляется плагин jqGrid. А если мы хотим отображать данные выводимые в jqGrid в виде графика. Причем синхронно обновлять график &#8230; <a href="http://ajaxblog.ru/264">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Вывод данных в виде таблице удобно тем, что предостовляет большие возможности работы с ними (сортировка, фильтрация, выборки). И с этим прекрасно справляется плагин jqGrid.</p>
<p>А если мы хотим отображать данные выводимые в jqGrid в виде графика. Причем синхронно обновлять график вместе с данными в таблице. Например так.</p>
<p><span id="more-264"></span></p>
<p><img class="alignnone size-full wp-image-265" title="jqgrid-open-flash-chart" src="http://ajaxblog.ru/wp-content/uploads/2009/10/jqgrid-open-flash-chart.gif" alt="jqgrid-open-flash-chart" width="593" height="409" /></p>
<p>Для построения графика я выбрал флешь библиотеку <a href="http://teethgrinder.co.uk/open-flash-chart-2/">Open Flash Chart</a>, которая себе прекрасно зарекомендовала. Если вам что то, придется не по душе в этой библиотеки, вы всегда сможете изменить . Так как <a href="http://teethgrinder.co.uk/open-flash-chart-2/">Open Flash Chart</a> &#8211; open source проект.</p>
<p>Еще нам понадобиться js библиотека &#8211; <a href="http://code.google.com/p/swfobject/">SWFobject</a>. Ее задача поместить флешку в нужное нам место. В принципе мы смогли бы обойтись и без нее, но она позволяет решить: проблемы кросс-браузерности, наличие нужной версии флешь проигрывателя и  т.д.</p>
<p>Основная идея скрипта.</p>
<ol>
<li>у jqGrid есть событие loadComplete &#8211; на него мы подвешиваем генерацию графика. То есть каждый раз когда грид обновляется, у нас будет обновятся график.</li>
<li>а данные для графика мы будем получать через пользовательский массив , с помощью функции getUserData()</li>
</ol>
<p>Вот пример кода.</p>
<pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">"text/javascript"</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">"/js/swfobject.js"</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>

$<span style="color: #009900;">(</span>document<span style="color: #009900;">)</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
	<span style="color: #003366; font-weight: bold;">var</span> chartCreate <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> data_statistics_chart <span style="color: #339933;">=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>

	$<span style="color: #009900;">(</span><span style="color: #3366CC;">"#statistics-list"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">jqGrid</span><span style="color: #009900;">(</span><span style="color: #009900;">{</span>
		...некоторый ваш код...

		<span style="color: #006600; font-style: italic;">// функция вызывается в тот момент когда приходят данные в грид</span>
		loadComplete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
			<span style="color: #006600; font-style: italic;">// получаем пользовательские данные</span>
			<span style="color: #003366; font-weight: bold;">var</span> udata <span style="color: #339933;">=</span> $<span style="color: #009900;">(</span><span style="color: #3366CC;">"#statistics-list"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">getUserData</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
			<span style="color: #006600; font-style: italic;">// вызываем функцию loadChartData с нашими данными udata.chart_data для флеши</span>
			loadChartData<span style="color: #009900;">(</span>udata.<span style="color: #660066;">chart_data</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">}</span>
	<span style="color: #009900;">}</span><span style="color: #009900;">)</span>.<span style="color: #660066;">navGrid</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'#statistics-pager'</span><span style="color: #339933;">,</span> <span style="color: #009900;">{</span>refresh<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>add<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>edit<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>del<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>search<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>

	<span style="color: #003366; font-weight: bold;">function</span> loadChartData<span style="color: #009900;">(</span>data<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
		data_statistics_chart <span style="color: #339933;">=</span> data<span style="color: #339933;">;</span>
		<span style="color: #006600; font-style: italic;">// проверяем мы создали объект флешь</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span>chartCreate<span style="color: #009900;">)</span> <span style="color: #009900;">{</span> <span style="color: #006600; font-style: italic;">// если да, то</span>
			<span style="color: #006600; font-style: italic;">// находим флешку</span>
			chart <span style="color: #339933;">=</span> swfobject.<span style="color: #660066;">getObjectById</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'statistics_chart'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
			<span style="color: #006600; font-style: italic;">// загружаем в нее полученные данные</span>
			chart.<span style="color: #660066;">load</span><span style="color: #009900;">(</span>data<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">}</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">{</span> <span style="color: #006600; font-style: italic;">// создаем флешку с помощью js библиотеки swfobject</span>
			chartCreate <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			swfobject.<span style="color: #660066;">embedSWF</span><span style="color: #009900;">(</span>
				<span style="color: #006600; font-style: italic;">// откуда берем саму флешку</span>
				<span style="color: #3366CC;">'/flash/open-flash-chart.swf'</span><span style="color: #339933;">,</span>
				<span style="color: #006600; font-style: italic;">// куда ее помещаем</span>
				<span style="color: #3366CC;">'statistics_chart'</span><span style="color: #339933;">,</span>
				<span style="color: #006600; font-style: italic;">// настройки флешки</span>
				<span style="color: #3366CC;">'734'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'270'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'9.0.0'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'expressInstall.swf'</span><span style="color: #339933;">,</span>
				<span style="color: #006600; font-style: italic;">// данные откуда флешка будет брать</span>
				<span style="color: #006600; font-style: italic;">// обратите внимания! флешка ждет на входе имя функции, </span>
				<span style="color: #006600; font-style: italic;">// поэтому сразу передать данные не получаетьса</span>
				<span style="color: #009900;">{</span><span style="color: #3366CC;">'get-data'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'get_data_statistics_chart'</span><span style="color: #009900;">}</span><span style="color: #339933;">,</span>
				<span style="color: #009900;">{</span><span style="color: #3366CC;">'wmode'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'opaque'</span><span style="color: #009900;">}</span>
			<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">}</span>
	<span style="color: #009900;">}</span>

	<span style="color: #006600; font-style: italic;">// сама функция которая вернет нужные данные флешки</span>
	<span style="color: #003366; font-weight: bold;">function</span> get_data_statistics_chart<span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
		<span style="color: #000066; font-weight: bold;">return</span> data_statistics_chart<span style="color: #339933;">;</span>
	<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>

<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">'statistics_chart'</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>

<span style="color: #339933;">&lt;</span>div <span style="color: #003366; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #3366CC;">"grid"</span><span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>table id<span style="color: #339933;">=</span><span style="color: #3366CC;">"statistics-list"</span> <span style="color: #003366; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #3366CC;">"scroll"</span><span style="color: #339933;">&gt;&lt;/</span>table<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">"statistics-pager"</span> <span style="color: #003366; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #3366CC;">"scroll"</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/264/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Скрещиваем jqGrid и FCKeditor</title>
		<link>http://ajaxblog.ru/246</link>
		<comments>http://ajaxblog.ru/246#comments</comments>
		<pubDate>Wed, 14 Oct 2009 09:25:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=246</guid>
		<description><![CDATA[Есть прекрасный программный продукт jqGrid. У него есть неплохой функционал по редактированию данных в таблице, вот только нет возможности редактировать текст через какой-либо визуальный редактор, например FCKeditor. Почему FCKeditor? Во первых он достаточно стабилен, во вторых его легко настроить под &#8230; <a href="http://ajaxblog.ru/246">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Есть прекрасный программный продукт jqGrid. У него есть неплохой функционал по редактированию данных в таблице, вот только нет возможности редактировать текст через какой-либо визуальный редактор, например FCKeditor.</p>
<p>Почему FCKeditor?<br />
Во первых он достаточно стабилен, во вторых его легко настроить под себя, и наверное самое главное у меня был опыт работы с ним.</p>
<p>Поиск в интернете ничего мне не дал, … значить придется все делать самому.</p>
<p>Все оказалось на удивление просто</p>
<p><span id="more-246"></span></p>
<pre class="javascript" style="font-family:monospace;">&lt;script type="text/javascript" src="/js/lib/fckeditor/fckeditor.js"&gt;&lt;/script&gt;

<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">"text/javascript"</span><span style="color: #339933;">&gt;</span>
$<span style="color: #009900;">(</span>document<span style="color: #009900;">)</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
	$<span style="color: #009900;">(</span><span style="color: #3366CC;">"#news-list"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">jqGrid</span><span style="color: #009900;">(</span><span style="color: #009900;">{</span>
		...некоторый ваш код...
	<span style="color: #009900;">}</span><span style="color: #009900;">)</span>.<span style="color: #660066;">navGrid</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'#news-pager'</span><span style="color: #339933;">,</span>
		<span style="color: #009900;">{</span>refresh<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>add<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>edit<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>del<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>search<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">}</span><span style="color: #339933;">,</span>
		<span style="color: #009900;">{</span>
			<span style="color: #006600; font-style: italic;">// edit parameters</span>
			width<span style="color: #339933;">:</span> <span style="color: #CC0000;">500</span><span style="color: #339933;">,</span>
			reloadAfterSubmit<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
			beforeShowForm<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
				fckeditor<span style="color: #009900;">(</span><span style="color: #3366CC;">'text'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">}</span><span style="color: #339933;">,</span>
			onclickSubmit<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
				<span style="color: #003366; font-weight: bold;">var</span> oEditorText <span style="color: #339933;">=</span> FCKeditorAPI.<span style="color: #660066;">GetInstance</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'text'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">{</span>
					text<span style="color: #339933;">:</span> oEditorText.<span style="color: #660066;">GetHTML</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span>
				<span style="color: #009900;">}</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">}</span>
		<span style="color: #009900;">}</span><span style="color: #339933;">,</span>
		<span style="color: #009900;">{</span>
			<span style="color: #006600; font-style: italic;">// add parameters</span>
			reloadAfterSubmit<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
			beforeShowForm<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
				<span style="color: #006600; font-style: italic;">// Перед тем как показать форму, вставляем в элемент с id='text' наш редактор</span>
				fckeditor<span style="color: #009900;">(</span><span style="color: #3366CC;">'text'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">}</span><span style="color: #339933;">,</span>
			onclickSubmit<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
				<span style="color: #006600; font-style: italic;">// Получаем введенный и отформатированный текст в редакторе</span>
				<span style="color: #003366; font-weight: bold;">var</span> oEditorText <span style="color: #339933;">=</span> FCKeditorAPI.<span style="color: #660066;">GetInstance</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'text'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
				<span style="color: #006600; font-style: italic;">// Возвращаем его в виде html текста</span>
				<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">{</span>
					text<span style="color: #339933;">:</span> oEditorText.<span style="color: #660066;">GetHTML</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span>
				<span style="color: #009900;">}</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">}</span>
		<span style="color: #009900;">}</span><span style="color: #339933;">,</span>
		<span style="color: #009900;">{</span>
			<span style="color: #006600; font-style: italic;">//delete parameters</span>
		<span style="color: #009900;">}</span>
	<span style="color: #009900;">)</span><span style="color: #339933;">;</span>

	<span style="color: #003366; font-weight: bold;">function</span> fckeditor<span style="color: #009900;">(</span>id<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
		<span style="color: #003366; font-weight: bold;">var</span> oFCKeditor <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> FCKeditor<span style="color: #009900;">(</span>id<span style="color: #009900;">)</span> <span style="color: #339933;">;</span>
		oFCKeditor.<span style="color: #660066;">ReplaceTextarea</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>

&lt;h1&gt;&lt;?=_('Новости')?&gt;&lt;/h1&gt;

&lt;div class="grid"&gt;
	&lt;table id="news-list" class="scroll"&gt;&lt;/table&gt;
	&lt;div id="news-pager" class="scroll"&gt;&lt;/div&gt;
&lt;/div&gt;</pre>
<p>А вот так это выглядит в работе</p>
<p><img class="alignnone size-full wp-image-249" title="jqgrid-fckeditor" src="http://ajaxblog.ru/wp-content/uploads/2009/10/jqgrid-fckeditor.png" alt="jqgrid-fckeditor" width="593" height="458" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/246/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Select Box Factory – очумелый плагин для jQuery.</title>
		<link>http://ajaxblog.ru/149</link>
		<comments>http://ajaxblog.ru/149#comments</comments>
		<pubDate>Mon, 20 Oct 2008 09:47:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Плагины]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=149</guid>
		<description><![CDATA[Я являюсь тайным фанатом библиотеки для javascript – jQuery. Это библиотека предоставляет для разработчика фантастические возможности для реализации задуманного им функционала. jQuery, по своей концепции напоминает Firefox. Сама по себе, как и «голый» Firefox (без плагинов) вряд ли завоевал такую &#8230; <a href="http://ajaxblog.ru/149">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Я являюсь тайным фанатом библиотеки для javascript – jQuery. Это библиотека предоставляет для разработчика фантастические возможности для реализации задуманного им функционала.</p>
<p>jQuery, по своей концепции напоминает Firefox. Сама по себе, как и «голый» Firefox (без плагинов) вряд ли завоевал такую популярность и любовь. Все дело в дружественной среде заложенной в библиотеке. Которая позволяет легко писать расширения в виде плагинов. Начиная от официальных плагинов jQuery UI, и заканчивая сторонними.</p>
<p>Вот об одном из них я и расскажу. <a href="http://www.headcircus.com/uiguy/selectboxfactory/selectboxfactory.html">Select Box Factory</a> –поистине очумелый плагин для создание списков с выбором.</p>
<p><img src="http://ajaxblog.ru/wp-content/uploads/2008/10/select-1.png" alt="" width="370" height="200" /></p>
<p><span id="more-149"></span></p>
<p>Что он умеет:</p>
<ul>
<li> строить списки на основе уже существующей DOM – структуры
<pre class="prettyprint">var dropdown = new sFac({
	id : "fromMemory",
	container : "dropdownContainer"
});	

&lt;div id="dropdownContainer"&gt;
	&lt;div id="lynx" title="lynx" defaultSelection="false" state="0" data="claws,stripes"&gt; Lynx &lt;/div&gt;
	&lt;div id="cheetah" title="cheetah" defaultSelection="false" state="0" data="eyes,claws"&gt;Cheetah&lt;/div&gt;
	&lt;div id="bobcat" title="bobcat" defaultSelection="false" state="0" data="eyes,nose"&gt;Bobcat&lt;/div&gt;
&lt;/div&gt;</pre>
</li>
<li>Получать самому списочный массив с сервера с помощью JSON или прописать его в коде
<pre class="prettyprint">var dropdown = new sFac({
	id : "fromTheServerSide",
	container : "dropdownContainer",
	choices :
		[
			['leopard','leopard','Leopard',false,0,["spots"," ears"]],
			['tiger','tiger','Tiger',false,0,[" tail","nose"]],
			['serval','serval','Serval',true,0,["tail","nose"]],
		]
});</pre>
</li>
<li>Списки поддерживают следующие свойства:  dropdown, показать один только список без шапки, мультивыбор значений списка, изменений размеров списков (resize)<br />
<img class="alignnone size-full wp-image-150" title="select-2" src="http://ajaxblog.ru/wp-content/uploads/2008/10/select-2.png" alt="" width="500" height="190" /></li>
<li>Плагин поддерживает фильтрование значений списка и создание списков из картинок<br />
<img class="alignnone size-full wp-image-152" title="select-3" src="http://ajaxblog.ru/wp-content/uploads/2008/10/select-3.png" alt="" width="370" height="200" /></li>
<li>Создание списков с подкрашенными значениями, с последующей возможностью применить к ним фильтр<br />
<img class="alignnone size-full wp-image-154" title="select-41" src="http://ajaxblog.ru/wp-content/uploads/2008/10/select-41.png" alt="" width="342" height="200" /></li>
<li>Поддержка скинов для списков<br />
<img class="alignnone size-full wp-image-155" title="select-5" src="http://ajaxblog.ru/wp-content/uploads/2008/10/select-5.png" alt="" width="342" height="188" /></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/149/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Скажи «здравствуй» Blackbird и «до свидание» alert()</title>
		<link>http://ajaxblog.ru/136</link>
		<comments>http://ajaxblog.ru/136#comments</comments>
		<pubDate>Thu, 16 Oct 2008 12:37:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Инструмент разработчика]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=136</guid>
		<description><![CDATA[Вот такой громкий заголовок венчает сайт авторов Blackbird. Что такое Blackbird – это js скрипт который позволяет забыть о существовании оператора JavaScript&#8217;а &#8211; alert(). Для разработчика javascript – интересный инструмент дебагинка кода. Конечно, «монстры» JavaScript программирования скажут, зачем нам это &#8230; <a href="http://ajaxblog.ru/136">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 10px; float: left " title="Blackbird javascript debaging" src="http://ajaxblog.ru/wp-content/uploads/2008/10/blackbird.png" alt="Blackbird javascript debaging" width="297" height="285" /></p>
<p>Вот такой громкий заголовок венчает сайт авторов <a href="http://www.gscottolson.com/blackbirdjs/">Blackbird</a>.</p>
<p>Что такое Blackbird – это js скрипт который позволяет забыть о существовании оператора JavaScript&#8217;а &#8211; alert(). Для разработчика javascript – интересный инструмент дебагинка кода.</p>
<p>Конечно, «монстры» JavaScript программирования скажут, зачем нам это нужно. Когда есть Firebug с его console.log(message). Для отладки кода в браузерах отличном от Firefox, есть от встроенных средств браузера до Firebug Lite.</p>
<p>Конечно, они будут правы, но…. я сторонник идеи – чем больше возможности выбора у человека, тем лучше. Каждый программист решает, каким инструментом ему удобнее воспользоваться для данной задачи и возможно это будет Blackbird.</p>
<p><span id="more-136"></span></p>
<h3 style='clear: left;'>Как подключить</h3>
<ul>
<li><a href="http://blackbirdjs.googlecode.com/files/blackbirdjs-1.0.zip">скачать код</a></li>
<li>прописать в html файле следующие строчки</li>
</ul>
<pre>&lt;html&gt;
    &lt;head&gt;
       &lt;script type="text/javascript" src="/PATH/TO/blackbird.js"&gt;&lt;/script&gt;
      &lt;link type="text/css" rel="Stylesheet" href="/PATH/TO/blackbird.css" /&gt;
      ...
   &lt;/head&gt;
...</pre>
<h3>Что умеет</h3>
<dl>
<dt><strong>log.toggle()</strong></dt>
<dd>Скрыть/Показать Blackbird</dd>
<dt><strong>log.move()</strong></dt>
<dd>Перемещение Blackbird к следующей фиксированной позиции: верхней-левой, верхней-правой, нижней-левой, нижней-правой.</dd>
<dt><strong>log.resize()</strong></dt>
<dd>Развернуть / Свернуть Blackbird</dd>
<dt><strong>log.clear()</strong></dt>
<dd>Очистить от содержимого Blackbird</dd>
<dt><strong>log.debug(message)</strong></dt>
<dd>Добавить отладочную информацию в Blackbird</dd>
<dt><strong>log.info(message)</strong></dt>
<dd>Добавить сообщение в Blackbird</dd>
<dt><strong>log.warn(message)</strong></dt>
<dd>Добавить предупреждение в Blackbird</dd>
<dt><strong>log.error(message)</strong></dt>
<dd>Добавить ошибку в Blackbird</dd>
<dt><strong>log.profile(label)</strong></dt>
<dd>Профайлер кода. Это метка должна стоять в начале и конце тестируемого кода. Очень удобно чтобы узнать время выполнение вашего кусочка кода.</dd>
</dl>
<h3>Какие клавиши понимает</h3>
<dl>
<dt><strong>F2</strong></dt>
<dd>Скрыть/Показать</dd>
<dt><strong>Shift+F2</strong></dt>
<dd>Переместить</dd>
<dt><strong>Alt+Shift+F2</strong></dt>
<dd>Очистить Blackbird от сообщений</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/136/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Drosera &#8211; отладчик javascript для Safari</title>
		<link>http://ajaxblog.ru/107</link>
		<comments>http://ajaxblog.ru/107#comments</comments>
		<pubDate>Tue, 05 Aug 2008 09:48:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[Инструмент разработчика]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=107</guid>
		<description><![CDATA[Webkit &#8211; движок Safari получил мощный javascript отладчик &#8211; Drosera. Это сообщение было опубликовано на блоке Safari. Загрузив последнюю ночную сборку Webkit вы сразу получите этот инструмент. По функциональности он не сильно уступает известному Firebug. Теперь, кто сможет сказать, что &#8230; <a href="http://ajaxblog.ru/107">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; margin-right: 10px;" title="drosera" src="http://ajaxblog.ru/wp-content/uploads/2008/08/drosera.png" alt="" width="285" height="355" />Webkit &#8211; движок Safari получил мощный javascript отладчик &#8211; Drosera. Это сообщение было опубликовано на <a href="http://webkit.org/blog/">блоке Safari</a>. Загрузив последнюю <a href="http://nightly.webkit.org/">ночную сборку Webkit</a> вы сразу получите этот инструмент. По функциональности он не сильно уступает известному Firebug.</p>
<p>Теперь, кто сможет сказать, что javascript &#8211; не настоящий язык программирования.</p>
<p><br style="clear: left;"></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/107/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>240 удивительных плагинов для jQuery</title>
		<link>http://ajaxblog.ru/85</link>
		<comments>http://ajaxblog.ru/85#comments</comments>
		<pubDate>Fri, 25 Jul 2008 06:58:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Находки]]></category>
		<category><![CDATA[Плагины]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=85</guid>
		<description><![CDATA[jQuery одна из моих любимых JavaScript библиотек. Одно из сильных сторон этот библиотеки &#8211; поддержка сторонних расширений (плагинов). А нашему брату только дай по расширять В этом посту приведен список более чем 200 отобранных плагинов для jQury на каждый случай. &#8230; <a href="http://ajaxblog.ru/85">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>jQuery одна из моих любимых JavaScript библиотек. Одно из сильных сторон этот библиотеки &#8211; поддержка сторонних расширений (плагинов). А нашему брату только дай по расширять <img src='http://ajaxblog.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>В этом посту приведен список более чем 200 отобранных плагинов для jQury на каждый случай. Правда не мной, а <a href="http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/">Jürgen Koller</a>.</p>
<p><span id="more-85"></span></p>
<p style="clear: left;">
<p><strong>File upload</strong></p>
<ul>
<li><a href="http://www.phpletter.com/Demo/AjaxFileUpload-Demo/" target="_blank">Ajax File Upload</a></li>
<li><a href="http://www.pixeline.be/experiments/jqUploader/" target="_blank">jQUploader</a></li>
<li><a href="http://www.fyneworks.com/jquery/multiple-file-upload/" target="_blank">Multiple File Upload plugin</a></li>
<li><a href="http://www.appelsiini.net/projects/filestyle" target="_blank">jQuery File Style</a></li>
<li><a href="http://jquery.com/plugins/project/InputFileCSS" target="_blank">Styling an input type file</a></li>
<li><a href="http://digitalbush.com/projects/progress-bar-plugin" target="_blank">Progress Bar Plugin</a></li>
</ul>
<p><strong>Form Validation</strong></p>
<ul>
<li><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/" target="_blank">jQuery Validation</a></li>
<li><a href="http://www.dyve.net/jquery/?autohelp" target="_blank">Auto Help</a></li>
<li><a href="http://www.willjessup.com/sandbox/jquery/form_validator/form_validate.html" target="_blank">Simple jQuery form validation</a></li>
<li><a href="http://letmehaveblog.blogspot.com/2007/08/easy-client-side-web-forms-validations.html" target="_blank">jQuery XAV &#8211; form validations</a></li>
<li><a href="http://itgroup.com.ph/alphanumeric/" target="_blank">jQuery AlphaNumeric</a></li>
<li><a href="http://digitalbush.com/projects/masked-input-plugin" target="_blank">Masked Input</a></li>
<li><a href="http://www.dennydotnet.com/post/TypeWatch-jQuery-Plugin.aspx" target="_blank">TypeWatch Plugin</a></li>
<li><a href="http://jquery.com/plugins/project/TextLimiter" target="_blank">Text limiter for form fields</a></li>
<li><a href="http://www.shawngo.com/gafyd/index.html" target="_blank">Ajax Username Check with jQuery</a></li>
</ul>
<p><strong>Form &#8211; Select Box stuff</strong></p>
<ul>
<li><a href="http://jquery.sanchezsalvador.com/page/jquerycombobox.aspx" target="_blank">jQuery Combobox</a></li>
<li><a href="http://www.ajaxray.com/blog/2007/11/08/jquery-controlled-dependent-or-cascading-select-list-2/" target="_blank">jQuery controlled dependent  (or Cascadign) Select List</a></li>
<li><a href="http://code.google.com/p/jqmultiselects/" target="_blank">Multiple Selects</a></li>
<li><a href="http://www.texotela.co.uk/code/jquery/select/" target="_blank">Select box manipulation</a></li>
<li><a href="http://code.google.com/p/jqueryselectcombo/" target="_blank">Select Combo Plugin</a></li>
<li><a href="http://www.msxhost.com/jquery/linked-selects/json/%20target=">jQuery &#8211; LinkedSelec</a></li>
<li><a href="http://remysharp.com/2007/09/18/auto-populate-multiple-select-boxes/" target="_blank">Auto-populate multiple select boxes</a></li>
<li><a href="http://www.sitespotting.it/esempi/002/" target="_blank">Choose Plugin (Select Replacement)</a></li>
</ul>
<p><strong>Form Basics, Input Fields, Checkboxes etc.</strong></p>
<ul>
<li><a href="http://www.malsup.com/jquery/form/" target="_blank">jQuery Form Plugin</a></li>
<li><a href="http://code.handlino.com/wiki/jquery-form" target="_blank">jQuery-Form</a></li>
<li><a href="http://envero.org/jlook/" target="_blank">jLook Nice Forms</a></li>
<li><a href="http://www.whitespace-creative.com/jquery/jNice/" target="_blank">jNice</a></li>
<li><a href="http://www.brainfault.com/2007/07/07/pin-plugin-reloaded/" target="_blank">Ping Plugin</a></li>
<li><a href="http://grzegorz.frydrychowicz.net/jquery_toggleformtext/" target="_blank">Toggle Form Text</a></li>
<li><a href="http://thoughts.kuzemchak.net/entry/toggleval-for-jquery/" target="_blank">ToggleVal</a></li>
<li><a href="http://www.pengoworks.com/workshop/jquery/field.plugin.htm" target="_blank">jQuery Field Plugin</a></li>
<li><a href="http://code.befruit.com/" target="_blank">jQuery Form&#8217;n Field plugin</a></li>
<li><a href="http://www.texotela.co.uk/code/jquery/checkboxes/" target="_blank">jQuery Checkbox manipulation</a></li>
<li><a href="http://www.alcoholwang.cn/jquery/jTaggingDemo.htm" target="_blank">jTagging</a></li>
<li><a href="http://code.google.com/p/labelcheck/" target="_blank">jQuery labelcheck</a></li>
<li><a href="http://scott.sauyet.com/thoughts/archives/2007/03/31/overlabel-with-jquery/" target="_blank">Overlabel</a></li>
<li><a href="http://blog.amicoimmaginario.it/2007/08/28/jquery-plugin-3-state-radio-buttons/" target="_blank">3 state radio buttons</a></li>
<li><a href="http://sanisoft-demo.com/jquery/plugins/shiftcheckbox/" target="_blank">ShiftCheckbox jQuery Plugin</a></li>
<li><a href="http://digitalbush.com/projects/watermark-input-plugin" target="_blank">Watermark Input</a></li>
<li><a href="http://kawika.org/jquery/checkbox/" target="_blank">jQuery Checkbox (checkboxes with imags)</a></li>
<li><a href="http://www.softwareunity.com/sandbox/jqueryspinbtn/" target="_blank">jQuery SpinButton Control</a></li>
<li><a href="http://www.phpletter.com/form_builder/demo.html" target="_blank">jQuery Ajax Form Builder</a></li>
<li><a href="http://www.texotela.co.uk/code/jquery/focusfields/" target="_blank">jQuery Focus Fields</a></li>
<li><a href="http://home.iprimus.com.au/kbwood/jquery/timeEntry.html" target="_blank">jQuery Time Entry</a></li>
</ul>
<p><strong>Time, Date and Color Picker</strong></p>
<ul>
<li><a href="http://marcgrabanski.com/code/ui-datepicker/" target="_blank">jQuery UI Datepicker</a></li>
<li><a href="http://kelvinluck.com/assets/jquery/datePicker/" target="_blank">jQuery date picker plugin</a></li>
<li><a href="http://code.google.com/p/jquery-timepicker/" target="_blank">jQuery Time Picker</a></li>
<li><a href="http://www.texotela.co.uk/code/jquery/timepicker/" target="_blank">Time Picker</a></li>
<li><a href="http://www.oakcitygraphics.com/jquery/clockpick/ClockPick.cfm" target="_blank">ClickPick</a></li>
<li><a href="http://labs.perifer.se/timedatepicker/" target="_blank">TimePicker</a></li>
<li><a href="http://acko.net/dev/farbtastic" target="_blank">Farbtastic jQuery Color Picker Plugin</a></li>
<li><a href="http://www.intelliance.fr/jquery/color_picker/" target="_blank">Color Picker by intelliance.fr</a></li>
</ul>
<p><strong>Rating Plugins</strong></p>
<ul>
<li><a href="http://www.phpletter.com/Demo/Jquery-Star-Rating-Plugin/" target="_blank">jQuery Star Rating Plugin</a></li>
<li><a href="http://www.m3nt0r.de/devel/raterDemo/" target="_blank">jQuery Star Rater</a></li>
<li><a href="http://riderdesign.com/articles/displayarticle.aspx?articleid=21" target="_blank">Content rater with asp.net, ajax and jQuery</a></li>
<li><a href="http://www.learningjquery.com/2007/05/half-star-rating-plugin" target="_blank">Half-Star Rating Plugin</a></li>
</ul>
<p><strong>Search Plugins</strong></p>
<ul>
<li><a href="http://www.cineasalyha.net/autocomplete/" target="_blank">Autocomplete Box</a></li>
<li><a href="http://www.vulgarisoip.com/2007/08/06/jquerysuggest-11/" target="_blank">jQuery Suggest</a></li>
<li><a href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/" target="_blank">jQuery Autocomplete</a></li>
<li><a href="http://www.pengoworks.com/workshop/jquery/autocomplete.htm" target="_blank">jQuery Autocomplete Mod</a></li>
<li><a href="http://www.ajaxdaddy.com/demo-jquery-autocomplete.html" target="_blank">jQuery Autocomplete by AjaxDaddy</a></li>
<li><a href="http://dev.reach1to1.net/saurabh/jplugins/autocomplete/" target="_blank">jQuery Autocomplete Plugin with HTML formatting</a></li>
<li><a href="http://interface.eyecon.ro/docs/autocomplete" target="_blank">jQuery Autocompleter</a></li>
<li><a href="http://nodstrum.com/2007/09/19/autocompleter/" target="_blank">AutoCompleter (Tutorial with PHP&amp;MySQL)</a></li>
<li><a href="http://rikrikrik.com/jquery/quicksearch/" target="_blank">quick Search jQuery Plugin</a></li>
</ul>
<p><strong>Inline Edit &amp; Editors</strong></p>
<ul>
<li><a href="http://www.jaysalvat.com/jquery/jtageditor/" target="_blank">jTagEditor</a></li>
<li><a href="http://demo.wymeditor.org/demo.html" target="_blank">WYMeditor</a></li>
<li><a href="http://garage.pimentech.net/scripts_doc_jquery_jframe/" target="_blank">jQuery jFrame</a></li>
<li><a href="http://www.appelsiini.net/projects/jeditable" target="_blank">Jeditable &#8211; edit in place plugin for jQuery</a></li>
<li><a href="http://www.dyve.net/jquery/?editable" target="_blank">jQuery editable</a></li>
<li><a href="http://www.jdempster.com/category/jquery/disableTextSelect/" target="_blank">jQuery Disable Text Select Plugin</a></li>
<li><a href="http://15daysofjquery.com/edit-in-place-with-ajax-using-jquery-javascript-library/15/" target="_blank">Edit in Place with Ajax using jQuery</a></li>
<li><a href="http://davehauenstein.com/blog/archives/28" target="_blank">jQuery Plugin &#8211; Another In-Place Editor</a></li>
<li><a href="http://dev.iceburg.net/jquery/tableEditor/demo.php" target="_blank">TableEditor</a></li>
<li><a href="http://joshhundley.com/teditable-in-place-editing-for-tables/" target="_blank">tEditable &#8211; in place table editing for jQuery</a></li>
</ul>
<p><strong>Audio, Video, Flash, SVG, etc</strong></p>
<ul>
<li><a href="http://www.contentwithstructure.com/extras/jmedia" target="_blank">jMedia &#8211; accessible multi-media embedding</a></li>
<li><a href="http://sourceforge.net/projects/jbedit/" target="_blank">JBEdit &#8211; Ajax online Video Editor</a></li>
<li><a href="http://www.sean-o.com/jquery/jmp3/" target="_blank">jQuery MP3 Plugin</a></li>
<li><a href="http://malsup.com/jquery/media/" target="_blank">jQuery Media Plugin</a></li>
<li><a href="http://jquery.lukelutman.com/plugins/flash/index.html" target="_blank">jQuery Flash Plugin</a></li>
<li><a href="http://www.solitude.dk/archives/embedquicktime/" target="_blank">Embed QuickTime</a></li>
<li><a href="http://keith-wood.name/svg.html" target="_blank">SVG Integration</a></li>
<li><a href="http://www.openstudio.fr/jQuery-Multimedia-Portfolio.html" target="_blank">jQuery Multimedia Portfolio</a></li>
<li><a href="http://bijon.rightbrainsolution.com/youtube/" target="_blank">jQuery YouTube Plugin</a></li>
</ul>
<p><strong>Photos/Images/Galleries</strong></p>
<ul>
<li><a href="http://jquery.com/demo/thickbox/" target="_blank">ThickBox</a></li>
<li><a href="http://leandrovieira.com/projects/jquery/lightbox/" target="_blank">jQuery lightBox plugin</a></li>
<li><a title="Fancy Box" href="http://fancy.klade.lv/" target="_blank">jQuery FancyBox</a></li>
<li><a href="http://www.openstudio.fr/jQuery-Multimedia-Portfolio.html" target="_blank">jQuery Multimedia Portfolio</a></li>
<li><a href="http://blog.joshuaeichorn.com/archives/2007/01/11/jquery-image-strip/" target="_blank">jQuery Image Strip</a></li>
<li><a href="http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html" target="_blank">jQuery slideViewer</a></li>
<li><a href="http://benjaminsterling.com/2007/09/09/jquery-jqgalscroll-photo-gallery/" target="_blank">jQuery jqGalScroll 2.0</a></li>
<li><a href="http://benjaminsterling.com/2007/10/02/jquery-jqgalviewii-photo-gallery/" target="_blank">jQuery &#8211; jqGalViewII</a></li>
<li><a href="http://benjaminsterling.com/2007/10/21/jqgalviewiii-proof-of-concept/" target="_blank">jQuery &#8211; jqGalViewIII</a></li>
<li><a href="http://opiefoto.com/articles/photoslider" target="_blank">jQuery Photo Slider</a></li>
<li><a href="http://joanpiedra.com/jquery/thumbs/" target="_blank">jQuery Thumbs &#8211; easily create thumbnails</a></li>
<li><a href="http://www.texotela.co.uk/code/jquery/jQIR/" target="_blank">jQuery jQIR Image Replacement</a></li>
<li><a href="http://www.gmarwaha.com/jquery/jcarousellite/index.php#what" target="_blank">jCarousel Lite</a></li>
<li><a href="http://projects.sevir.org/storage/jpanview/index.html" target="_blank">jQPanView</a></li>
<li><a href="http://sorgalla.com/projects/jcarousel/#Examples" target="_blank">jCarousel</a></li>
<li><a href="http://www.intelliance.fr/jquery/imagebox/" target="_blank">Interface Imagebox</a></li>
<li><a href="http://www.getintothis.com/blog/2006/10/12/image-gallery-using-jquery-interface-reflections/" target="_blank">Image Gallery using jQuery, Interface &amp; Reflactions</a></li>
<li><a href="http://realazy.org/lab/jquery/j-gallery/" target="_blank">simple jQuery Gallery</a></li>
<li><a href="http://chicagosocial.com/gallery/" target="_blank">jQuery Gallery Module</a></li>
<li><a href="http://www.eogallery.com/" target="_blank">EO Gallery</a></li>
<li><a href="http://flesler.blogspot.com/search/label/jQuery.ScrollShow" target="_blank">jQuery ScrollShow</a></li>
<li><a href="http://www.malsup.com/jquery/cycle/" target="_blank">jQuery Cycle Plugin</a></li>
<li><a href="http://www.projectatomic.com/en/flickr.htm" target="_blank">jQuery Flickr</a></li>
<li><a href="http://www.appelsiini.net/2007/9/lazy-load-images-jquery-plugin" target="_blank">jQuery Lazy Load Images Plugin</a></li>
<li><a href="http://www.sunsean.com/zoomi/" target="_blank">Zoomi &#8211; Zoomable Thumbnails</a></li>
<li><a href="http://remysharp.com/2007/03/19/a-few-more-jquery-plugins-crop-labelover-and-pluck/#crop" target="_blank">jQuery Crop &#8211; crop any image on the fly</a></li>
<li><a href="http://jquery.com/plugins/project/reflection" target="_blank">Image Reflection</a></li>
</ul>
<p><strong>Google Map</strong></p>
<ul>
<li><a href="http://www.dyve.net/jquery/?googlemaps" target="_blank">jQuery Plugin googlemaps</a></li>
<li><a href="http://code.google.com/p/jmaps/" target="_blank">jMaps jQuery Maps Framework</a></li>
<li><a href="http://projects.sevir.org/storage/jqmaps/index.html" target="_blank">jQmaps</a></li>
<li><a href="http://olbertz.de/jquery/googlemap.html" target="_blank">jQuery &amp; Google Maps</a></li>
<li><a href="http://snippets.dzone.com/posts/show/4361" target="_blank">jQuery Maps Interface forr Google and Yahoo maps</a></li>
<li><a href="http://webrocket.ulmb.com/jmaps/" target="_blank">jQuery J Maps &#8211; by Tane Piper</a></li>
</ul>
<p><strong>Games</strong></p>
<ul>
<li><a href="http://fmarcia.info/jquery/tetris/tetris.html" target="_blank">Tetris with jQuery</a></li>
<li><a href="http://64squar.es/" target="_blank">jQuery Chess</a></li>
<li><a href="http://www.bennadel.com/blog/623-jQuery-Demo-Mad-Libs-Word-Game.htm" target="_blank">Mad Libs Word Game</a></li>
<li><a href="http://www.alexatnet.com/node/68" target="_blank">jQuery Puzzle</a></li>
<li><a href="http://www.willjessup.com/sandbox/jquery/solar_system/rotator.html" target="_blank">jQuery Solar System (not a game but awesome jQuery Stuff)</a></li>
<li><a href="http://fernando.com.ar/memo/" target="_blank">jQuery Memory</a></li>
</ul>
<p><strong>Tables, Grids etc.</strong></p>
<ul>
<li><a href="http://docs.jquery.com/Plugins/Tablesorter" target="_blank">UI/Tablesorter</a></li>
<li><a href="http://www.reconstrukt.com/ingrid/" target="_blank">jQuery ingrid</a></li>
<li><a href="http://www.trirand.com/blog/?p=13" target="_blank">jQuery Grid Plugin</a></li>
<li><a href="http://ideamill.synaptrixgroup.com/jquery/tablefilter/tabletest.htm" target="_blank">Table Filter &#8211; awesome!</a></li>
<li><a href="http://dev.iceburg.net/jquery/tableEditor/demo.php" target="_blank">TableEditor</a></li>
<li><a href="http://www.hanpau.com/jquery/unobtrusivetreetable.php" target="_blank">jQuery Tree Tables</a></li>
<li><a href="http://www.javascripttoolbox.com/jquery/#expandablerows" target="_blank">Expandable &laquo;Detail&raquo; Table Rows</a></li>
<li><a href="http://www.remotesynthesis.com/blog/index.cfm/2007/9/25/Sortable-Table-ColdFusion-Custom-Tag-with-jQueryUI" target="_blank">Sortable Table ColdFusion Costum Tag with jQuery UI</a></li>
<li><a href="http://flesler.blogspot.com/2007/10/jquerybubble.html" target="_blank">jQuery Bubble</a></li>
<li><a href="http://tablesorter.com/docs/" target="_blank">TableSorter</a></li>
<li><a href="http://www.webtoolkit.info/demo/jquery/scrollable/demo.html" target="_blank">Scrollable HTML Table</a></li>
<li><a href="http://p.sohei.org/stuff/jquery/columnmanager/demo/demo.html" target="_blank">jQuery column Manager Plugin</a></li>
<li><a href="http://p.sohei.org/stuff/jquery/tablehover/demo/demo.html" target="_blank">jQuery tableHover Plugin</a></li>
<li><a href="http://p.sohei.org/stuff/jquery/columnhover/demo/demo.html" target="_blank">jQuery columnHover Plugin</a></li>
<li><a href="http://makoomba.altervista.org/grid/" target="_blank">jQuery Grid</a></li>
<li><a href="http://motherrussia.polyester.se/jquery-plugins/tablesorter/" target="_blank">TableSorter plugin for jQuery</a></li>
<li><a href="http://joshhundley.com/teditable-in-place-editing-for-tables/" target="_blank">tEditable &#8211; in place table editing for jQuery</a></li>
<li><a href="http://www.hovinne.com/dev/jquery/chartotable/" target="_blank">jQuery charToTable Plugin</a></li>
<li><a href="http://www.ita.es/jquery/jquery.grid.columnSizing.htm" target="_blank">jQuery Grid Column Sizing</a></li>
<li><a href="http://www.ita.es/jquery/jquery.grid.rowSizing.htm" target="_blank">jQuery Grid Row Sizing</a></li>
</ul>
<p><strong>Charts, Presentation etc.</strong></p>
<ul>
<li><a href="http://code.google.com/p/flot/" target="_blank">Flot</a></li>
<li><a href="http://worcesterwideweb.com/2007/06/04/jquery-wizard-plugin/" target="_blank">jQuery Wizard Plugin </a></li>
<li><a href="http://www.reach1to1.com/sandbox/jquery/jqchart/" target="_blank">jQuery Chart Plugin</a></li>
<li><a href="http://ejohn.org/apps/speed/" target="_blank">Bar Chart</a></li>
<li><a href="http://www.filamentgroup.com/lab/creating_accessible_charts_using_canvas_and_jquery/" target="_blank">Accessible Charts using Canvas and jQuery</a></li>
</ul>
<p><strong>Border, Corners, Background</strong></p>
<ul>
<li><a href="http://www.malsup.com/jquery/corner/" target="_blank">jQuery Corner</a></li>
<li><a href="http://blue-anvil.com/archives/anti-aliased-rounded-corners-with-jquery" target="_blank">jQuery Curvy Corner</a></li>
<li><a href="http://dev.jquery.com/%7Epaul/plugins/nifty/example.html" target="_blank">Nifty jQuery Corner</a></li>
<li><a href="http://illandril.net/jQuery/transparentCorners/" target="_blank">Transparent Corners</a></li>
<li><a href="http://www.methvin.com/jquery/jq-corner.html" target="_blank">jQuery Corner Gallery</a></li>
<li><a href="http://blog.brandonaaron.net/my-jquery-plugins/gradient/" target="_blank">Gradient Plugin</a></li>
</ul>
<p><strong>Text and Links</strong></p>
<ul>
<li><a href="http://wanderinghorse.net/computing/javascript/jquery/spoilers/demo.html" target="_blank">jQuery Spoiler plugin</a></li>
<li><a href="http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html" target="_blank">Text Highlighting</a></li>
<li><a href="http://www.jdempster.com/category/jquery/disableTextSelect/" target="_blank">Disable Text Select Plugin</a></li>
<li><a href="http://www.texotela.co.uk/code/jquery/newsticker/" target="_blank">jQuery Newsticker</a></li>
<li><a href="http://www.ollicle.com/2007/jun/03/jquery_lineheight_flexible.html" target="_blank">Auto line-height Plugin</a></li>
<li><a href="http://agencenp.net/textgrad/textgrad.html" target="_blank">Textgrad &#8211; a text gradient plugin</a></li>
<li><a href="http://kawika.org/jquery/linklook/" target="_blank">LinkLook &#8211; a link thumbnail preview</a></li>
<li><a href="http://rikrikrik.com/jquery/pager/#examples" target="_blank">pager jQuery Plugin</a></li>
<li><a href="http://rikrikrik.com/jquery/shortkeys/" target="_blank">shortKeys jQuery Plugin</a></li>
<li><a href="http://www.ollicle.com/eg/jquery/biggerlink" target="_blank">jQuery Biggerlink</a></li>
<li><a href="http://troy.dyle.net/linkchecker/" target="_blank">jQuery Ajax Link Checker</a></li>
<li><a href="http://noteslog.com/chili/" target="_blank">Chili jQuery code highlighter plugin</a></li>
<li><a href="http://jscroller.markusbordihn.de/example/left/" target="_blank">jScroller</a></li>
</ul>
<p><strong>Tooltips</strong></p>
<ul>
<li><a href="http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/" target="_blank">jQuery Plugin &#8211; Tooltip</a></li>
<li><a href="http://www.codylindley.com/blogstuff/js/jtip/" target="_blank">jTip &#8211; The jQuery Tool Tip</a></li>
<li><a href="http://examples.learningjquery.com/62/demo/index.html#examplesection" target="_blank">clueTip</a></li>
<li><a href="http://edgarverle.com/BetterTip/default.cfm" target="_blank">BetterTip</a></li>
<li><a href="http://ioreader.com/2007/05/15/flash-tooltips-using-jquery/" target="_blank">Flash Tooltips using jQuery</a></li>
<li><a href="http://www.texotela.co.uk/code/jquery/tooltipdemo/" target="_blank">ToolTip</a></li>
</ul>
<p><strong>Menus, Navigations</strong></p>
<ul>
<li><a href="http://stilbuero.de/jquery/tabs_3/" target="_blank">jQuery Tabs Plugin &#8211; awesome! </a></li>
<li><a href="http://stilbuero.de/jquery/tabs_3/nested.html" target="_blank">demo nested tabs</a></li>
<li><a href="http://blog.cutterscrossing.com/index.cfm/2007/6/15/Updated-JQuery-Nested-Tab-Set-with-Demo" target="_blank">another jQuery nested Tab Set example (based on jQuery Tabs Plugin)</a></li>
<li><a href="http://www.sunsean.com/idTabs/" target="_blank">jQuery idTabs</a></li>
<li><a href="http://jdsharp.us/jQuery/plugins/jdMenu/" target="_blank">jdMenu &#8211; Hierarchical Menu Plugin for jQuery</a></li>
<li><a href="http://be.twixt.us/jquery/suckerFish.php" target="_blank">jQuery SuckerFish Style</a></li>
<li><a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/" target="_blank">jQuery Plugin Treeview</a></li>
<li><a href="http://be.twixt.us/jquery/treeView.php" target="_blank">treeView Basic</a></li>
<li><a href="http://labs.activespotlight.net/jQuery/menu_demo.html" target="_blank">FastFind Menu</a></li>
<li><a href="http://www.getintothis.com/blog/2006/09/26/my-first-jquery-plugin-a-sliding-menu/" target="_blank">Sliding Menu</a></li>
<li><a href="http://gmarwaha.com/blog/?p=7" target="_blank">Lava Lamp jQuery Menu</a></li>
<li><a href="http://icon.cat/wiki/IconDock_En#iconDock_jQuery_Plugin" target="_blank">jQuery iconDock</a></li>
<li><a href="http://cherne.net/brian/resources/jquery.variations.html" target="_blank">jVariations Control Panel</a></li>
<li><a href="http://www.trendskitchens.co.nz/jquery/contextmenu/" target="_blank">ContextMenu plugin</a></li>
<li><a href="http://p.sohei.org/jquery-plugins/clickmenu/" target="_blank">clickMenu</a></li>
<li><a href="http://www.ndesign-studio.com/blog/mac/css-dock-menu" target="_blank">CSS Dock Menu</a></li>
<li><a href="http://webexpose.org/2006/12/28/jquery-pop-up-menu-tutorial/" target="_blank">jQuery Pop-up Menu Tutorial</a></li>
<li><a href="http://www.getintothis.com/blog/2006/09/26/my-first-jquery-plugin-a-sliding-menu/" target="_blank">Sliding Menu</a></li>
</ul>
<p><strong>Accordions, Slide and Toggle stuff</strong></p>
<ul>
<li><a href="http://bassistance.de/jquery-plugins/jquery-plugin-accordion/" target="_blank">jQuery Plugin Accordion</a></li>
<li><a href="http://fmarcia.info/jquery/accordion.html" target="_blank">jQuery Accordion Plugin Horizontal Way</a></li>
<li><a href="http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-accordion.html" target="_blank">haccordion &#8211; a simple horizontal accordion plugin for jQuery</a></li>
<li><a href="http://dev.portalzine.de/index?/Horizontal_Accordion--print" target="_blank">Horizontal Accordion by portalzine.de</a></li>
<li><a href="http://berndmatzner.de/jquery/hoveraccordion/" target="_blank">HoverAccordion</a></li>
<li><a href="http://fmarcia.info/jquery/accordion.html" target="_blank">Accordion Example from fmarcia.info</a></li>
<li><a href="http://blog.evaria.com/wp-content/themes/blogvaria/jquery/index.php" target="_blank">jQuery Accordion Example</a></li>
<li><a href="http://jquery.com/files/demo/dl-done.html" target="_blank">jQuery Demo &#8211; Expandable Sidebar Menu</a></li>
<li><a href="http://www.andreacfm.com/examples/jQpanels/" target="_blank">Sliding Panels for jQuery</a></li>
<li><a href="http://jquery.andreaseberhard.de/toggleElements/" target="_blank">jQuery ToggleElements</a></li>
<li><a href="http://www.ndoherty.com/demos/coda-slider/" target="_blank">Coda Slider</a></li>
<li><a href="http://sorgalla.com/projects/jcarousel/#Examples" target="_blank">jCarousel</a></li>
<li><a href="http://www.reindel.com/accessible_news_slider/" target="_blank">Accesible News Slider Plugin</a></li>
<li><a href="http://icant.co.uk/sandbox/jquerycodeview/" target="_blank">Showing and Hiding code Examples</a></li>
<li><a href="http://gsgd.co.uk/sandbox/jquery/easing/" target="_blank">jQuery Easing Plugin</a></li>
<li><a href="http://sonspring.com/journal/jquery-portlets" target="_blank">jQuery Portlets</a></li>
<li><a href="http://jdsharp.us/jQuery/plugins/AutoScroll/" target="_blank">AutoScroll</a></li>
<li><a href="http://medienfreunde.com/lab/innerfade/" target="_blank">Innerfade</a></li>
<li><a href="http://maxb.net/blog/2008/05/11/ycodaslider-20/" target="_blank">CodaSlider</a></li>
</ul>
<p><strong>Drag and Drop</strong></p>
<ul>
<li><a href="http://docs.jquery.com/UI/Draggables" target="_blank">UI/Draggables</a></li>
<li><a href="http://fromvega.com/wordpress/2007/07/14/easydrag-jquery-plugin/" target="_blank">EasyDrag jQuery Plugin</a></li>
<li><a href="http://sonspring.com/journal/jquery-portlets" target="_blank">jQuery Portlets</a></li>
<li><a href="http://dev.iceburg.net/jquery/jqDnR/" target="_blank">jqDnR &#8211; drag, drop resize</a></li>
<li><a href="http://interface.eyecon.ro/demos/drag.html" target="_blank">Drag Demos</a></li>
</ul>
<p><strong>XML XSL JSON Feeds</strong></p>
<ul>
<li><a href="http://www.jongma.org/webtools/jquery/xslt/" target="_blank">XSLT Plugin</a></li>
<li><a href="http://cgaskell.wordpress.com/2006/11/02/jquery-ajax-call-and-result-xml-parsing/" target="_blank">jQuery Ajax call and result XML parsing</a></li>
<li><a href="http://jquery.com/plugins/project/xmlObjectifier" target="_blank">xmlObjectifier &#8211; Converts XML DOM to JSON</a></li>
<li><a href="http://jquery.glyphix.com/" target="_blank">jQuery XSL Transform</a></li>
<li><a href="http://malsup.com/jquery/taconite/" target="_blank">jQuery Taconite &#8211; multiple Dom updates</a></li>
<li><a href="http://www.hovinne.com/blog/index.php/2007/07/15/132-jfeed-jquery-rss-atom-feed-parser-plugin" target="_blank">RSS/ATOM Feed Parser Plugin</a></li>
<li><a href="http://www.malsup.com/jquery/gfeed/" target="_blank">jQuery Google Feed Plugin</a></li>
</ul>
<p><strong>Browserstuff</strong></p>
<ul>
<li><a href="http://noteslog.com/post/how-to-fix-the-resize-event-in-ie/" target="_blank">Wresize &#8211; IE Resize event Fix Plugin</a></li>
<li><a href="http://jquery.khurshid.com/ifixpng.php" target="_blank">jQuery ifixpng</a></li>
<li><a href="http://jquery.andreaseberhard.de/pngFix/" target="_blank">jQuery pngFix</a></li>
<li><a href="http://www.crismancich.de/jquery/plugins/linkscrubber/" target="_blank">Link Scrubber &#8211; removes the dotted line onfocus from links</a></li>
<li><a href="http://www.matthewjrichards.co.uk/articles/2007/06/25/jquery-perciformes-the-entire-suckerfish-familly-under-one-roof" target="_blank">jQuery Perciformes &#8211; the entire suckerfish familly under one roof</a></li>
<li><a href="http://blog.brandonaaron.net/my-jquery-plugins/background-iframe/" target="_blank">Background Iframe</a></li>
<li><a href="http://jquery.com/plugins/project/QinIE" target="_blank">QinIE &#8211; for proper display of Q tags  in IE</a></li>
<li><a href="http://webrocket.ulmb.com/ability/" target="_blank">jQuery Accessibility Plugin</a></li>
<li><a href="http://www.ogonek.net/mousewheel/jquery-demo.html" target="_blank">jQuery MouseWheel Plugin</a></li>
</ul>
<p><strong>Alert, Prompt, Confirm Windows</strong></p>
<ul>
<li><a href="http://trentrichardson.com/Impromptu/" target="_blank">jQuery Impromptu</a></li>
<li><a href="http://nadiaspot.com/jquery/confirm" target="_blank">jQuery Confirm Plugin</a></li>
<li><a href="http://dev.iceburg.net/jquery/jqModal/" target="_blank">jqModal</a></li>
<li><a href="http://www.ericmmartin.com/projects/simplemodal/" target="_blank">SimpleModal</a></li>
</ul>
<p><strong>CSS</strong></p>
<ul>
<li><a href="http://www.kelvinluck.com/article/switch-stylesheets-with-jquery" target="_blank">jQuery Style Switcher</a></li>
<li><a href="http://andykent.bingodisk.com/bingo/public/jss/" target="_blank">JSS &#8211; Javascript StyleSheets</a></li>
<li><a href="http://flesler.blogspot.com/2007/11/jqueryrule.html" target="_blank">jQuery Rule &#8211; creation/manipulation of CSS Rules</a></li>
<li><a href="http://www.designerkamal.com/jPrintArea/" target="_blank">jPrintArea</a></li>
</ul>
<p><strong>DOM, Ajax and other jQuery plugins</strong></p>
<ul>
<li><a href="http://flydom.socianet.com/" target="_blank">FlyDOM</a></li>
<li><a href="http://brandonaaron.net/docs/dimensions/#getting-started" target="_blank">jQuery Dimenion Plugin</a></li>
<li><a href="http://happygiraffe.net/blog/articles/2007/09/26/jquery-logging" target="_blank">jQuery Loggin</a></li>
<li><a href="http://jquery.com/plugins/project/metadata" target="_blank">Metadata &#8211; extract metadata from classes, attributes, elements</a></li>
<li><a href="http://johannburkard.de/blog/programming/javascript/inc-a-super-tiny-client-side-include-javascript-jquery-plugin.html" target="_blank">Super-tiny Client-Side Include Javascript jQuery Plugin</a></li>
<li><a href="http://humanized.com/weblog/2007/09/14/undo-made-easy-with-ajax-part-1/" target="_blank">Undo Made Easy with Ajax</a></li>
<li><a href="http://www.jasons-toolbox.com/JHeartbeat/" target="_blank">JHeartbeat &#8211; periodically poll the server</a></li>
<li><a href="http://www.appelsiini.net/projects/lazyload" target="_blank">Lazy Load Plugin</a></li>
<li><a href="http://blog.brandonaaron.net/2007/08/19/new-plugin-live-query/" target="_blank">Live Query</a></li>
<li><a href="http://jquery.offput.ca/every/" target="_blank">jQuery Timers</a></li>
<li><a href="http://www.joanpiedra.com/jquery/shareit/" target="_blank">jQuery Share it &#8211; display social bookmarking icons</a></li>
<li><a href="http://www.jdempster.com/category/code/jquery/cookiejar/" target="_blank">jQuery serverCookieJar</a></li>
<li><a href="http://ideamill.synaptrixgroup.com/?p=3" target="_blank">jQuery autoSave</a></li>
<li><a href="http://www.semicomplete.com/blog/geekery/jquery-interface-puffer.html" target="_blank">jQuery Puffer</a></li>
<li><a href="http://33rockers.com/jquery/iframe-demo/" target="_blank">jQuery iFrame Plugin</a></li>
<li><a href="http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/" target="_blank">Cookie Plugin for jQuery</a></li>
<li><a href="http://leftlogic.com/lounge/articles/jquery_spy2" target="_blank">jQuery Spy &#8211; awesome plugin</a></li>
<li><a href="http://www.learningjquery.com/2007/01/effect-delay-trick" target="_blank">Effect Delay Trick</a></li>
<li><a href="http://jquick.sullof.com/jquick/" target="_blank">jQuick &#8211; a quick tag creator for jQuery</a></li>
<li><a href="http://noteslog.com/post/metaobjects-11-released-today/" target="_blank">Metaobjects</a></li>
<li><a href="http://www.thunderguy.com/semicolon/2007/08/14/elementready-jquery-plugin/" target="_blank">elementReady</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/85/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Js Decoder или как распутать запутаный код</title>
		<link>http://ajaxblog.ru/77</link>
		<comments>http://ajaxblog.ru/77#comments</comments>
		<pubDate>Fri, 11 Jul 2008 11:02:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Инструмент разработчика]]></category>
		<category><![CDATA[Находки]]></category>

		<guid isPermaLink="false">http://ajaxblog.ru/?p=77</guid>
		<description><![CDATA[Нашел в сети замечательный онлайн инструмент Js Decoder. Он позволяет декодировать обфускационный код. Часто можно встретить код такого вида var base_code='';var jsdecoder;var jscolorizer;var code='';var time=0;function decode() {code='';base_code='';jsdecoder=new JsDecoder();jscolorizer=new JsColorizer();if($('msg').innerHTML.length){do_clean_init();}else{jsdecoder.s=$("a1").value;do_decode_init();}} function do_decode_init() {$('msg').innerHTML+='Decoding .. ';setTimeout(do_decode,50);}... И не всегда это делается для &#8230; <a href="http://ajaxblog.ru/77">Далее, еще интереснее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Нашел в сети замечательный онлайн инструмент <a href="http://code.gosu.pl/dl/JsDecoder/demo/JsDecoder.html">Js Decoder</a>. Он позволяет декодировать<a href="http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%84%D1%83%D1%81%D0%BA%D0%B0%D1%86%D0%B8%D1%8F"> обфускационный</a> код.</p>
<p>Часто можно встретить код такого вида<br />
<code><br />
var base_code='';var jsdecoder;var jscolorizer;var code='';var time=0;function decode()<br />
{code='';base_code='';jsdecoder=new JsDecoder();jscolorizer=new JsColorizer();if($('msg').innerHTML.length){do_clean_init();}else{jsdecoder.s=$("a1").value;do_decode_init();}} function do_decode_init() {$('msg').innerHTML+='Decoding .. ';setTimeout(do_decode,50);}...<br />
</code></p>
<p>И не всегда это делается для того чтобы максимально усложнить жизнь программисту который хочет понять логику работы кода. Очень часто для того, что-бы уменьшить размер кода, за счет удаления лишних пробелов, переводов строк и пустых строк разделителей.</p>
<p>Вот для того что-бы привести код в человекопонятный вид и служит этот инструмент.</p>
<p><img class="alignleft size-full wp-image-78" title="js-decoder" src="http://ajaxblog.ru/wp-content/uploads/2008/07/js-decoder.gif" alt="js-decoder" width="413" height="615" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxblog.ru/77/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

