<?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>WEB2.0 trükkök&#124;&#124;WEB2.0 tricks</title>
	<atom:link href="http://web2.bitbaro.hu/feed/" rel="self" type="application/rss+xml" />
	<link>http://web2.bitbaro.hu</link>
	<description>HTML, CSS, JavaScript, PHP, Flex, Aptana, Jaxer, Python, Joomla, Administration, Linux</description>
	<lastBuildDate>Sun, 31 Jan 2010 23:14:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>hu</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Alcatel X200 telepítése Ubuntura (Pannon 3G internet)</title>
		<link>http://web2.bitbaro.hu/2009/07/07/alcatel-x200-telepitese-ubuntura-pannon-3g-internet/</link>
		<comments>http://web2.bitbaro.hu/2009/07/07/alcatel-x200-telepitese-ubuntura-pannon-3g-internet/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 20:02:33 +0000</pubDate>
		<dc:creator>Wedge</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[Alcatel X200]]></category>
		<category><![CDATA[HSDPA]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[Pannon]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[telepítés]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UMTS]]></category>

		<guid isPermaLink="false">http://web2.bitbaro.hu/?p=72</guid>
		<description><![CDATA[Az Alcatel X200 telepítése Ubuntu 9.04 (Jaunty Jackalope) oprendszerre. Ezt adják a Pannon 3G-hez.]]></description>
			<content:encoded><![CDATA[<p><strong>Figyelem:</strong> A linuxos írásaimat átköltöztettem a <a href="http://linux.bitbaro.hu/">http://linux.bitbaro.hu/</a> címre. Ott közzétettem egy leírást, aminek segítségével a Karmic Koala alatt is működésre bírható a kütyü.</p>
<p>Alőfizettem a Pannonnál mobil internetre. Egy Alcatel X200-as modemet kaptam. Persze Linux támogatás nincs hozzá, csak Mac és Windows (Nem értem, mert kb. 1 nap ráfordítás lenne, biztos behozná az árát, ha az emberek a Windows licensz helyett ilyen kütyükért fizetnének&#8230;).</p>
<p>Találtam a neten leírásokat, amik leírják, hogy hogyan lehet működésre bírni Ubuntu alatt a kütyüt, de egyik sem az Ubuntuban szabványos NetworkManager-t használja, hanem a wvdial nevű progit. Kicsit utánanéztem a dolgoknak és sikerült megoldanom. Most megy a NetworkManagerből kényelmesen.</p>
<p>A telepítéshez Linux alapismeretek kellenek csak, nem kell terminálban sem matatni.</p>
<p><span id="more-72"></span>Ebből az oldalból indultam ki: <a href="http://ubuntu.hu/node/10508">http://ubuntu.hu/node/10508</a></p>
<p>A készülék részletei: <a href="http://www.pannon.hu/uzleti/keszulekek/alcatel/x200/" target="_blank">http://www.pannon.hu/uzleti/keszulekek/alcatel/x200/</a></p>
<p>Én a cikk írásakor legújabb Ubuntu változattal próbáltam, a 9.04-gyel (Jaunty Jackalope). Ebből is a 32 bites változattal. (Elvileg működik a 64 bitessel is, de akkor az usb_modeswitch-ből a 64 bites változat kell.)</p>
<h2>usb_modswitch</h2>
<p>Először szükség lesz az usb_modeswitch csomag letöltésére. Amihez ugye internet kell. De ha ezt az oldalt olvasod, valószínűleg van. Vagy ha Windows alól nézed, ott megy alapból a kütyü. Innen töltheted le a debian csomagot: <a href="http://ftp.hu.debian.org/debian/pool/main/u/usb-modeswitch/usb-modeswitch_1.0.2-1_i386.deb" target="_blank">http://ftp.hu.debian.org/debian/pool/main/u/usb-modeswitch/usb-modeswitch_1.0.2-1_i386.deb</a> . Ez egy debian csomag, de megy Ubuntu alatt is (hiszen nagy részben az is Debian).</p>
<p>A letöltött .deb kiterjesztésű fájlt a GDEBI programmal telepíthetjük. (ALT+F2 -&gt; gdebi-gtk -&gt; &lt;enter&gt;).</p>
<p>Az usb_modswitch azért kell, mert ezek az új USB-s eszközöket először CD-ROM-ként ismerik fel a számítógépek, amin megtalálható a Windows ill. mac driver. Ezek telepítése után maga a driver elrejti (Windowson) a &#8220;CD-ROM&#8221;-ot. Ezért tud utána menni a kütyü. Linuxon a rendszer alapból ismeri az Alcatel X200-at, csak amig ott a CD, nem látja. Erre való az usb_modswitch.</p>
<p>A fenti debian csomag előnye, hogy tartalmazza az <em>UDEV rule</em>okat is egy csomó egyéb ismert cucchoz. Ez azt jelenti, hogy magától lefutnak a szükséges beállítások amikor az eszközt az USB csatlakozóba dugjuk, nem kell semmi egyebet beállítanunk.</p>
<p>De ezzel még csak a modem indul el, amit a NetworkManager nem ismer fel 3G eszköznek, csak a wvdial, vagy a gnome-ppp programokkal megy&#8230;</p>
<h2>HAL és további UDEV beállítások</h2>
<p>A HAL (Hardware Access Layer) mondja meg a különböző programoknak, hogy milyen tulajdonságaik vannak, amiket az alkalmazások kihasználhatnak. Ezek egy részét automatikusan felismeri a rendszer és kitölti a szükséges paramétereket.</p>
<p>A HAL paraméterezését az eszköz csatlakoztatásakor az UDEV indítja. Az UDEV is tárolhat információkat a hardverről. A NetworkManager érdekes módon mindkettőt nézi, nem tudom mi értelme (a forrása szerint ki lehet kapcsolni). Továbbá az UDEV-vel fogjuk betölteni a modem használatához szükséges <strong>usbserial</strong> drivert (kernel modult).</p>
<h3>HAL</h3>
<p>Másoljuk a <em>/etc/hal/fdi/information/</em> mappába hozzunk létre egy <em>alcatel-x200.fdi </em>nevű fált:</p>
<p>ALT+F2 -&gt; gksudo gedit /etc/hal/fdi/information/alcatel-x200.fdi -&gt; másoljuk az alábbi XML kódot a megjelenő szerkesztőbe:</p>
<pre class="xhtml" name="code">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!-- -*- xml -*- --&gt;
&lt;deviceinfo version="0.2"&gt;
  &lt;device&gt;
    &lt;match key="info.category" string="serial"&gt;
      &lt;match key="@info.parent:usb.vendor_id" int="0x1bbb"&gt;
        &lt;match key="@info.parent:usb.product_id" int="0x0000"&gt;
          &lt;match key="@info.parent:usb.interface.number" int="3"&gt;
            &lt;append key="info.capabilities" type="strlist"&gt;
              modem
            &lt;/append&gt;
            &lt;append key="info.capabilities" type="strlist"&gt;
              access_control
            &lt;/append&gt;
            &lt;append key="modem.command_sets" type="strlist"&gt;
              GSM-07.07
            &lt;/append&gt;
            &lt;append key="modem.command_sets" type="strlist"&gt;
              GSM-07.05
            &lt;/append&gt;
          &lt;/match&gt;
        &lt;/match&gt;
      &lt;/match&gt;
    &lt;/match&gt;
  &lt;/device&gt;
&lt;/deviceinfo&gt;</pre>
<p>-&gt; mentsük el: CTRL+S, majd zárjuk be az ablakot</p>
<h3>UDEV</h3>
<p>Az UDEV rule betölti a megfelelő drivert, majd megmondja a network managernek, hogy itt egy 3G modemmel van dolga.</p>
<p>Hozzuk létre a <em>/etc/udev/rules.d/</em> mappába a <em>99-alcatel-x200.rules</em> nevű fájlt:</p>
<p>ALT+F2  -&gt; gksudo gedit /etc/udev/rules.d/99-alcatel-x200.rules -&gt; Másoljuk a következő tartalmat a szerkesztőbe:</p>
<pre>SUBSYSTEM=="usb", SYSFS{idProduct}=="0000", SYSFS{idVendor}=="1bbb", RUN+="/sbin/modprobe usbserial vendor=0x1bbb product=0x0000"
ACTION=="add|change", SUBSYSTEM=="tty", ENV{ID_VENDOR_ID}=="1bbb", ENV{ID_MODEL_ID}=="0000", ENV{ID_IFACE}=="03", ENV{ID_NM_MODEM_GSM}="1", ENV{ID_NM_MODEM_PROBED}="1"</pre>
<p>Figyeljünk arra, hogy az utolsó sor egy üres sor legyen! -&gt; Mentsük el a fájlt: CTRL+S -&gt; Lépjünk ki a szerkesztőből</p>
<h2>A NetworkManager beállítása</h2>
<p>Ha kész vagyunk,<strong> indítsuk újra a rendszert</strong> (lehet máshogy is, de ez a legegyszerűbb).</p>
<p>Csatlakoztassuk a modemet egy USB portra, ekkor kis idő után észre veszi a Network Manager. Azt hiszem, hogy első indításkor egy varázsló is lefut. Nekem már volt egy Vodafone-os kártyám is telepítve, ezért nem hozott fel semmit. A varázslót el lehet indítani úgy is, hogy jobb gombbal a NM ikonjára kattintunk -&gt; Kapcsolatok szerkesztése -&gt; Mobil szélessáv -&gt; Hozzáadás.</p>
<p>A varázslóban szerepel a Pannon, de nem teljesen jó beállításokkal. Válasszük ki a &#8220;Pannon (Normál)&#8221;-t. Majd ha befejeződött a varázsló, szerkesszük a szerkesztés gombbal. Menjünk az &#8220;IPV4 beállításai&#8221; fülre és  válasszuk ki az &#8220;Automatikus PPP&#8221;-t. Mentsük és kész is vagyunk.</p>
<p>Ezután a NetworkManager ikonjára bal gombbal kattintva és a Pannont választva kapcsolódik a hálózathoz és lehet netezni.</p>
<h2>Friss Jaunty</h2>
<p>A friss Jaunty kernelébe (szerintem tévedésből) belefordították az usbserial csomagot. Ez azért baj, mert így csak induláskor lehet megmondani kernel paraméterek megadásával, hogy melyik eszközt használja. Az itt bemutatott udev script használatához szükséges, hogy az usbserial modulként legyen, ne a kernelben.</p>
<p>Szóval aki friss telepítéshez szeretné használni a fent leírtakat, annak először le kell tölteni egy újabb kernelt, ami már modulként tartalmazza az usbserial modult: <a href="http://ftp.kfki.hu/linux/ubuntu/pool/main/l/linux/linux-image-2.6.28-14-generic_2.6.28-14.46_i386.deb">http://ftp.kfki.hu/linux/ubuntu/pool/main/l/linux/linux-image-2.6.28-14-generic_2.6.28-14.46_i386.deb</a></p>
<p><strong>Megjegyzés</strong>: Néha előfordul, hogy csatlakozik, de utána el is dobja azonnal a kapcsolatot. Erre nem jöttem rá, hogy miért van, szerintem ez hiba a NetworkManagerben. Nem a modem hibája, mert tapasztaltam ilyet a Vodafone-os kártyával is. Ilyenkor az újraindítás segített. Újraindításkor ha nincs bedugva a kártya, hanem a bejelentkezés után dugjtam be, akkor nekem mindig ment. Ha egyszer csatlakozott, utána stabilan megy egész nap.</p>
<p>Használjátok egészséggel!</p>
]]></content:encoded>
			<wfw:commentRss>http://web2.bitbaro.hu/2009/07/07/alcatel-x200-telepitese-ubuntura-pannon-3g-internet/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Multifunkciós webes fejlesztőkörnyezet telepítése</title>
		<link>http://web2.bitbaro.hu/2009/03/14/multifunkcios-webes-fejlesztokornyezet-telepitese/</link>
		<comments>http://web2.bitbaro.hu/2009/03/14/multifunkcios-webes-fejlesztokornyezet-telepitese/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 16:46:30 +0000</pubDate>
		<dc:creator>Wedge</dc:creator>
				<category><![CDATA[Fejlesztőkörnyezet]]></category>
		<category><![CDATA[Aptana]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[Flex Builder]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PyDev]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://web2.bitbaro.hu/?p=49</guid>
		<description><![CDATA[Szerintem a legjobb webes fejlesztőkörnyezet WEB2.0 alkalmazások készítésére az Aptana. Támogatja a JavaScript fejlesztést mind kliens, mind szerver oldalon (Jaxer). Továbbá pluginek segítségével PHP és Rail támogatással is felruházható. Tartalmaz plugint Adobe Air alkalmazások, iPhone, Nokia Wrt fejlesztéshez. Ha pedig Flexes alkalmazásokat szeretnénk írni, akkor nincs jobb mint a Flex Builder. Pythonos fejlesztésekre ott a [...]]]></description>
			<content:encoded><![CDATA[<p>Szerintem a legjobb webes fejlesztőkörnyezet WEB2.0 alkalmazások készítésére az <a title="Aptana WEB2.0 IDE" href="http://www.aptana.com/" target="_blank">Aptana</a>. Támogatja a JavaScript fejlesztést mind kliens, mind szerver oldalon (Jaxer). Továbbá pluginek segítségével PHP és Rail támogatással is felruházható. Tartalmaz plugint Adobe Air alkalmazások, iPhone, Nokia Wrt fejlesztéshez. Ha pedig Flexes alkalmazásokat szeretnénk írni, akkor nincs jobb mint a <a href="http://www.adobe.com/products/flex/features/flex_builder/" target="_blank">Flex Builder</a>. Pythonos fejlesztésekre ott a <a href="http://pydev.sourceforge.net/" target="_blank">PyDev</a>.</p>
<p>Mivel mind a három Eclipse alapú, ezért könnyen telepíthetők egy rendszerbe. Ez a leírás a 3 rendszer közös telepítését írja le Windows rendszerre (Linuxos változat is érkezik hamarosan).</p>
<p><span id="more-49"></span></p>
<p>Az Eclipset teljesen felesleges feltelepíteni, ha nem akarunk Java-ban is fejleszteni. Mind az Aptana, mind a Flex Builder rendelkezik különálló (standalone) telepítővel és plugin telepítővel is. Nekem sikerült úgy is telepíteni, hogy az Aptana alá Flex Builder plugint installáltam, de sajnos utána a frissítések nem működtek, így maradt a másik irány.</p>
<h3>Flex Builder telepítése</h3>
<div class="level3">
<p>Az Adobe Flex Builder telepíthető külön programként (ami tartalmazza az<br />
Eclipse-t) és Eclipse pluginként is. Ebben a leírásban az előbbit fogom<br />
leírni.</p>
<ol>
<li class="level1"> Töltsük le a telepítőt: <a class="urlextern" title="http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email" rel="nofollow" href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email">www.adobe.com/cfusion/entitlement/index.cfm</a> . A fájl elég nagy kb. 400MB</li>
<li class="level1"> Telepítsük:
<ol>
<li class="level2"> <strong>A telepítési könyvtár nevében nem lehet space karakter</strong>!!! Ez fontos a PyDev miatt!!! A könyvtár lehet mondjuk: C:\WORK\FlexBuilder3 (A Program Files nem jó).</li>
<li class="level2"> A telepítésnél, amikor a Flash Plugin 9-et kérdezi, ne legyen kipipálva semmi</li>
</ol>
</li>
<li class="level1"> Az első indításkor kér egy regisztrációs kulcsot. Lehet kérni az Adobe-tól próba kulcsot, ami 60 napig megy, meg lehet a neten találni kódgenerálót is, de erre nem buzdítok senkit, aki pénzt keres vele.</li>
</ol>
</div>
<p><!--{12370462930600}--></p>
<h3>Az Aptana telepítése a Flex Builder alá</h3>
<div class="level3">
<p>A Flex Builder alá a legújabb Aptana simán telepíthető.</p>
<ol>
<li class="level1"> A telepítéshez kövessük a köv. linken található leírást: <a class="urlextern" title="http://release.aptana.com/update/studio/3.2/index.html" rel="nofollow" href="http://release.aptana.com/update/studio/3.2/index.html">http://release.aptana.com/update/studio/3.2/index.html</a></li>
<li class="level1"> Újraindítás után mindenféle ablakot felhoz, többek között egy hibát is:
<ol>
<li class="level2"> A hibával ne foglalkozzunk, újraindítás után jó lesz</li>
<li class="level2"> Engedélyezzük a portok nyitását a tűzfalnak</li>
<li class="level2"> Az összes kis ablakot tüntessük el, kivéve a subversion telepítéséről szólót, de sehol ne engedjük neki újraindítani.</li>
<li class="level2"> Az Aptana alapból felajánlja a Subversion kliens<br />
telepítését. Engedjük a telepítést. Ennek a végén lehet engedni az<br />
újraindítást</li>
</ol>
</li>
<li class="level1"> Újraindítás után adjuk hozzá az Aptana perspective-t. (Jobbra a perspective kapcsolónál)</li>
<li class="level1">Telepíthetjük az Aptana plugin telepítőjével a PHP v. Rail plugint is.</li>
</ol>
</div>
<p><!--{12370462930601}--></p>
<h3>Python fejlesztő (PyDev) telepítése</h3>
<p>A PyDev egy nagyon jó Python fejlesztő környezet. Ha telepítjük a PyDev Extension plugineket is, akkor nyelvi ellenőrzést, kód analizálást is tartalmaz, azonban ezért fizetnünk kell.</p>
<div class="level3">
<ol>
<li class="level2">
<div class="li">A következő módon kell telepíteni, mint Eclipse plugin: <a class="urlextern" title="http://fabioz.com/pydev/manual_101_install.html" rel="nofollow" href="http://fabioz.com/pydev/manual_101_install.html">http://fabioz.com/pydev/manual_101_install.html</a> (Az optional dolgok nem kellenek)</div>
</li>
<li class="level2">
<div class="li">Window→Preferences→Interpreter -<br />
Python: Itt a New-ra kattintás után keressük meg a python.exe-t<br />
(c:\Python25\python.exe)! Ez beimportálja a használható fájlokat,<br />
objektumokat.</div>
</li>
</ol>
</div>
<div class="level3">Ha mindennel kész vagyunk, akkor egy nagyon jó fejlesztőkörnyezetet kapunk, ami a WEB2.0 minden területén</div>
<p><!--{12370462930602}--></p>
]]></content:encoded>
			<wfw:commentRss>http://web2.bitbaro.hu/2009/03/14/multifunkcios-webes-fejlesztokornyezet-telepitese/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript detektálás, ugrás ha nincs JS + W3C valid</title>
		<link>http://web2.bitbaro.hu/2009/03/10/javascript-detect/</link>
		<comments>http://web2.bitbaro.hu/2009/03/10/javascript-detect/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 09:57:55 +0000</pubDate>
		<dc:creator>Wedge</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://web2.bitbaro.hu/?p=13</guid>
		<description><![CDATA[Hogyan detektáljuk, hogy a JavaScript engedélyezve van-e a látogató böngészőjében úgy, hogy csak akkor irányítsuk át a felhasználót, ha nincs engedélyezve. Továbbá legyen böngészőfüggetlen a megoldás és a W3C validátor is tekintse szabványosnak.]]></description>
			<content:encoded><![CDATA[<p>Sok ember &#8211; félve vírustól, a böngésző hibáitól, reklámoktól&#8230; &#8211; egyszerűen kikapcsolja a böngészők JavaScript funkcióját. Ez a mai weboldalak ill. webalkalmazások szempontjából elég rossz szokás, mert ilyenkor teljesen működésképtelenné válhat. A felhasználónak meg nem minden esetben jut eszébe, hogy a kikapcsolt JavaScript az oka, hanem inkább az oldal készítőjét okolja. Erre ad megoldást az alábbi módszer. A felhasználót átirányíthatjuk egy statikus oldalra, ahol elmagyarázhatjuk neki, hogy miért is rossz kikapcsolni a JavaScriptet <img src='http://web2.bitbaro.hu/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Amit el szeretnénk érni</h3>
<ul>
<li>Szeretnénk elérni, hogy a böngésző kikapcsolt JavaScript esetén ugorjon egy hibaoldalra vagy az oldal JavaScript nélküli statikus változatára.</li>
<li>Szeretnénk megtartani az XHTML kompatibilitást</li>
<li>Működjön minden elterjedt böngészőn (Mozilla Firefox, Internet Explorer 6-7-8, Opera, Safari, Google Chrome)</li>
</ul>
<p><span id="more-13"></span>Az itt közölt megoldást nem láttam még publikálva sehol, saját ötlet. Kicsit hackelős, de működik <img src='http://web2.bitbaro.hu/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>A megoldáshoz vezető út</h3>
<p>Ahhoz, hogy JS nélkül tudjunk ugrani az alábbi <em>meta</em> taget lehet használni:</p>
<pre class="xhtml" name="code">&lt;meta http-equiv="refresh" content="0; url=nojs.html" /&gt;</pre>
<p>A fenti sort a headerbe helyezve az oldal azonnal a<em> nojs.html</em>-re ugrik. Ha van JS, ha nincs.</p>
<p>Kézenfekvő lenne, hogy ha van JavaScriptünk, kitöröljük a DOM-ból a fenti sort és kész. De sajnos ez nem működik, mert a böngésző a meta tageket betöltéskor feldolgozza és hiába töröljük a taget, ő akkor is ugrik&#8230;</p>
<p>Másik kézenfekvő megoldás, hogy a fenti sort &lt;noscript&gt;&lt;/noscript&gt; tagek közé helyezzük. A baj ezzel csak az, hogy ez nem szerepelhet a szabvány szerint a headerben, amúgy működne (nem vagyok benne biztos, hogy minden böngészőben). De a feltételeinkben benne volt, hogy az XHTML szabványt be kell tartanunk (legalábbis a validátor szerint).</p>
<h3>A megoldás</h3>
<p>Először álljon itt a kód, később részletesen elmagyarázom:</p>
<pre class="xhtml" name="code">&lt;!-- *** Javascript Detect Hack *** --&gt;
&lt;script type="text/javascript"&gt;&lt;!--
document.write("&lt;\/script&gt;&lt;script&gt;/*");
//--&gt;&lt;/script&gt;
&lt;meta http-equiv="refresh" content="0; url=nojs.html" /&gt;
&lt;script type="text/javascript"&gt;/* */&lt;/script&gt;
&lt;!-- ********* End of hack ******** --&gt;</pre>
<p>A működése nagyvonalakban: Ha van JavaScript, akkor a <em>&lt;meta&gt;</em> tag előtti script rész kommentbe teszi a <em>&lt;meta&gt;</em> taget, vagyis nem fut le. Ha nincs, akkor ugrik.</p>
<p><strong>Soronként</strong> (a kezdő és a vég komment nélkül):</p>
<ol>
<li>A script blokk kezdete. Ha van JavaScript, akkor lefut. A &#8220;&lt;!&#8211;&#8221; HTML komment az elején azért kell, mert a script tartalmaz &#8220;&lt;&#8221;, &#8220;&gt;&#8221; jeleket, amit a validátor hibásnak jelezne, továbbá a &lt;script&gt;-et nem ismerő böngészők (vagy amikben ki van kapcsolva) így kihagyják ezt a részt.</li>
<li>Itt a dokumentumba beírjuk a &lt;script&gt; blokk lezárását, majd rögtön nyitunk is egy újat, amibe egy JS blokkomment nyitását is elhelyeztük. Ezzel kommentezzük ki a &lt;meta&gt;-t.</li>
<li>Ez zárja le a validátornak a &lt;script&gt; taget. Csak azért kell, hogy a validátor örüljön. Ha lefut a fenti kód, akkor ez kommentben lesz, tehát hatástalan.</li>
<li>Ez ugrik, ha nincs JS a <em>nojs.html</em>-re. A nojs.html bármilyen URL-re cserélhető. Ha van JS, akkor ez ugyanúgy a JS blokkomment része, tehát nem foglalkozik vele a böngésző.</li>
<li>Ez szintén a validátornak szóló rész. Ha van js, akkor a nyitó &lt;script&gt; tag a komment része, nincs hatása. A /* még mindig a kommentben van, ez is csak a validátor miatt van, ami azt hiszi, hogy egy új JS részben jár. Egészen a <em>*/</em>-ig tart a blokkomment.  A <em>&lt;/script&gt;</em> pedig lezárja a scriptből megnyitott scriptblokkunkat.</li>
</ol>
<p>A lényeg, hogy két szinten megy a dolog és mind a két szinten helyes. Az egyik, amikor van JavaScript és dinamikusan változtatjuk a kódot, a másik, amikor nincs, és eleve XHTML szabvány szerinti a kód.</p>
<h3> További probléma</h3>
<p>Sajnos van módszer arra, hogy a <em>meta refresh</em>-t is kikapcsolja a felhasználó. Abban az esetben a fenti kód nem működik. Szerencsére ez elég ritkán fordul elő, egy átlagos felhasználó nem tesz ilyet.</p>
<h3>Példa</h3>
<p>Az alábbi url-re tettem egy példát, ahol működés közben lehet megnézni a kódot: <a href="http://web2.bitbaro.hu/jshack/">http://web2.bitbaro.hu/jshack/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://web2.bitbaro.hu/2009/03/10/javascript-detect/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
