<?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>JSToolbox - все о JavaScript &#187; Firefox</title>
	<atom:link href="http://www.jstoolbox.com/category/firefox/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jstoolbox.com</link>
	<description>Блог о программировании вообще и о JavaScript в частности, уроки, статьи, заметки, база знаний.</description>
	<lastBuildDate>Mon, 07 Mar 2011 18:19:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8220;Кратчайший&#8221; способ определить тип браузера</title>
		<link>http://www.jstoolbox.com/2009/01/29/opredelenye-browsera/</link>
		<comments>http://www.jstoolbox.com/2009/01/29/opredelenye-browsera/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 21:43:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Совместимость]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/?p=369</guid>
		<description><![CDATA[<p>До тех пор, пока существуют различия в работе JavaScript на разных браузерах, мы пожалуй будем вынуждены определять, с каким именно клиентом мы имеем дело. А поскольку JavaScript должен быть как можно компактней, то и код, выполняющие такое определение также должен быть максимально сжат. Сегодня я не без удовольствия нашел <a href="http://www.thespanner.co.uk/2009/01/29/detecting-browsers-javascript-hacks/">статью</a>, в которой описано как это нужно делать очень просто и компактно.</p>]]></description>
			<content:encoded><![CDATA[<p>До тех пор, пока существуют различия в работе JavaScript на разных браузерах, мы пожалуй будем вынуждены определять, с каким именно клиентом мы имеем дело. А поскольку JavaScript должен быть как можно компактней, то и код, выполняющие такое определение также должен быть максимально сжат. Сегодня я не без удовольствия нашел <a href="http://www.thespanner.co.uk/2009/01/29/detecting-browsers-javascript-hacks/">статью</a>, в которой описано как это можно сделать очень просто и компактно.</p>
<p><span id="more-369"></span></p>
<p>Итак, по очереди для каждого браузера:</p>
<p><strong>Firefox 2/3:</strong></p>
<pre class="prettyprint">
// Firefox 2/3
FF=/a/[-1]=='a'

// Firefox 3
FF3=(function x(){})[-5]=='x'

// Firefox 2
FF2=(function x(){})[-6]=='x'
</pre>
<p><strong>Internet Explorer 6/7/8:</strong></p>
<pre class="prettyprint">
IE='\v'=='v'
</pre>
<p><strong>Safari:</strong></p>
<pre class="prettyprint">
Saf=/a/.__proto__=='//'
</pre>
<p><strong>Chrome</strong></p>
<pre class="prettyprint">
Chr=/source/.test((/a/.toString+''))
</pre>
<p><strong>Opera</strong></p>
<pre class="prettyprint">
Op=/^function \(/.test([].sort)
</pre>
<p>Ну и конечно же можно сложить все это в одну строку:</p>
<pre class="prettyprint">
B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':/a/[-1]=='a'?'FF':'\v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':/^function \(/.test([].sort)?'Op':'Unknown'
</pre>
<div class="postLinks">
<strong>Спонсор статьи:</strong><br/><br />
Интернет Магазин Бытовой Техники &#8211; <a href="http://technosite.com.ua/brands.php?brand=128">pioneer одесса</a><br/>Энергосистемы: когенерационные и энергетические установки, газовые мини электростанции, <a href="http://www.energoalternativa.com/offers.html">купить электростанцию</a><br/>Наркологическая клиника &quot;Полинар&quot; &#8211; <a href="http://polinar.com.ua/">кодирование от алкоголя</a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2009/01/29/opredelenye-browsera/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

