
<?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>BitTrack &#187; Tutorial</title>
	<atom:link href="http://www.bittrack.it/archives/tag/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bittrack.it</link>
	<description>BitTrack.it tratta di Informatica, Programmazione, Reti, Hack, Trucchi, Tutorial, Webdesign e simili.</description>
	<lastBuildDate>Wed, 01 Sep 2010 06:07:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Primi passi con jQuery – 3</title>
		<link>http://www.bittrack.it/archives/primi-passi-con-jquery-%e2%80%93-3/</link>
		<comments>http://www.bittrack.it/archives/primi-passi-con-jquery-%e2%80%93-3/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 07:00:58 +0000</pubDate>
		<dc:creator>Raspo</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[selettore]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=1187</guid>
		<description><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2009/11/primi-passi-con-jquery.jpg" class="attachment-post-thumbnail wp-post-image" alt="primi-passi-con-jquery" title="primi-passi-con-jquery" /></div>Oggi, dopo una lunga assenza, continua la guida a jQuery con la terza parte, dove vedremo in quanti modi è possibile interagire con i form HTML tipo input, bottoni, checkbox, etc&#8230; Prima di cominciare Ricordati di caricare la libreria jQuery nella sezione &#60;head&#62; e di inserire i codici jQuery che vedremo tra poco, all&#8217;interno del [...]]]></description>
			<content:encoded><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2009/11/primi-passi-con-jquery.jpg" class="attachment-post-thumbnail wp-post-image" alt="primi-passi-con-jquery" title="primi-passi-con-jquery" /></div><p>Oggi, dopo una lunga assenza, continua la guida a jQuery con la terza parte, dove vedremo in quanti modi è possibile interagire con i form HTML tipo<strong> input</strong>, <strong>bottoni</strong>, <strong>checkbox</strong>, etc&#8230;<br />
<span id="more-1187"></span></p>
<h2>Prima di cominciare</h2>
<p>Ricordati di caricare la libreria jQuery nella sezione <strong>&lt;head&gt;</strong> e di inserire i codici jQuery che vedremo tra poco, all&#8217;interno del canonico <em>$(document).ready(function(){ … });</em> come visto nella <a href="http://www.bittrack.it/archives/primi-passi-con-jquery-1/" target="_blank">prima lezione</a>.</p>
<h2>Ottenere il contenuto di un campo</h2>
<p>Prendiamo un campo input con id <em>esempio1</em>, vogliamo far sì che, cliccando sul pulsante con id <em>btn</em>1, il contenuto del campo venga letto e mostrato all&#8217;utente in una finestra di alert.</p>
<pre class="brush: xml;">
&lt;input id=&quot;esempio1&quot; type=&quot;text&quot; value=&quot;Questo è il contenuto di default&quot; /&gt;
&lt;button id=&quot;btn1&quot; type=&quot;button&quot;&gt;Cliccami&lt;/button&gt;
</pre>
<p>Il codice jQuery è:</p>
<pre class="brush: jscript;">$(&quot;#btn1&quot;).click(function(){
    var testo = $(&quot;#esempio1&quot;).val();
    alert(testo);
});</pre>
<p>Che tradotto a parole significa: quando fai click sull&#8217;elemento con id<em> btn1</em>, cerca l&#8217;elemento <em>esempio1</em>, estraine il valore e salvalo dentro una variabile <em>testo</em> creata sul momento; quindi, mostrami il contenuto della variabile in una finestra di alert.</p>
<input id="esempio1" class="inputTut" type="text" value="Questo è il contenuto di default" /> <button id="btn1" class="buttonTut">Cliccami</button></p>
<p>Da notare l&#8217;utilizzo della funzione <strong><a href="http://api.jquery.com/val/" target="_blank">.val()</a></strong> che scritta così, senza valori tra parentesi, restituisce il valore dell&#8217;elemento, quindi il contenuto dell&#8217;input in quel momento.</p>
<h2>Impostare il contenuto di un campo</h2>
<p>Se invece di usare <strong><a href="http://api.jquery.com/val/" target="_blank">.val()</a></strong> come abbiamo appena fatto, mettiamo una stringa all&#8217;interno delle parentesi, la funzione non restituirà più un valore, ma imposterà quello che abbiamo indicato tra parentesi.</p>
<pre class="brush: jscript;">$(&quot;#btn2&quot;).click(function(){
   $(&quot;#esempio2&quot;).val(&quot;&quot;);
});</pre>
<p>In questo caso, cliccando sul pulsante, il valore del campo viene azzerato, o meglio, viene impostato un valore nullo, che si scrive con due virgolette aperte e chiuse.</p>
<input id="esempio2" class="inputTut" type="text" value="Questo è il contenuto di default" /> <button id="btn2" class="buttonTut">Cancella</button></p>
<h2>Conteggio dei caratteri</h2>
<p>Per creare uno script per il conteggio dei caratteri abbiamo bisogno come al solito di un campo input di tipo text e di un area (per esempio uno span) dove inserire il numero dei caratteri.</p>
<pre class="brush: xml;">&lt;input id=&quot;esempio3&quot; type=&quot;text&quot; value=&quot;&quot; /&gt;
&lt;span id=&quot;contatore1&quot; &gt;0&lt;/span&gt;</pre>
<p>Ed ecco il codice jQuery:</p>
<pre class="brush: jscript;">$(&quot;#esempio3&quot;).keyup(function(){
    var num = $(this).val().length;
    $(&quot;#contatore1&quot;).html(num);
});</pre>
<p>La funzione<strong><a href="http://api.jquery.com/keyup/" target="_blank"> .keyup() </a></strong>esegue la funzione tra parentesi ogni volta che viene premuto e rilasciato un tasto.<br />
Tale funzione, crea al volo una variabile <strong>num</strong> dentro cui inserisce il numero dei caratteri fin&#8217;ora inseriti nel campo con id <em>esempio3</em> a cui faccio riferimento con <strong>$(this)</strong> perché è l&#8217;oggetto del <strong>keyup()</strong>.<br />
In particolare, per prendere il numero di caratteri, prima uso <strong>.val()</strong>, senza valori tra parentesi, che restituisce una stringa contenente il valore dell&#8217;<strong>input</strong>, successivamente uso <strong>.length</strong> che restituisce  il numero di caratteri della stringa.<br />
Quindi, se fin&#8217;ora ho scritto nell&#8217;input &#8220;prova&#8221;, la funzione <strong>.val() </strong>mi da appunto la stringa &#8220;prova&#8221; e <strong>.lenght</strong> mi da 5.<br />
Infine, scrivo il numero dei caratteri dentro lo span con id <em>contatore1</em> usando il comando <strong>.html()</strong>.</p>
<p>Il funzionamento di <strong><a href="http://api.jquery.com/html/">.html()</a></strong> è analogo a <strong><a href="http://api.jquery.com/val/">.val()</a></strong>, l&#8217;unica differenza sta nel fatto che la seconda viene usata per i campi<strong> input</strong>, le <strong>textarea</strong>, le <strong>select</strong> e i<strong> button</strong>, mentre la prima è valida per tutti gli altri tipi di tag html.</p>
<input id="esempio3" class="inputTut" type="text" /><span id="contatore1" class="count">0</span></p>
<h2 id="countDown">Conteggio dei caratteri rimanenti</h2>
<p>Per ottenere invece l&#8217;effetto countdown dei caratteri rimanenti in un campo <strong>input</strong>, abbiamo bisogno della stessa struttura HTML dell&#8217;esempio precedente con l&#8217;aggiunta dell&#8217;attributo <em>maxlength=&#8221;15&#8243;</em> all&#8217;input, dove 15 è il numero massimo di caratteri che vogliamo far inserire.</p>
<pre class="brush: xml;">&lt;input id=&quot;esempio4&quot; type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;15&quot;/&gt;
&lt;span id=&quot;contatore2&quot; &gt;&lt;/span&gt;</pre>
<p>Codice jQuery:</p>
<pre class="brush: jscript;">var max = $(&quot;#esempio4&quot;).attr(&quot;maxlength&quot;);
$(&quot;#contatore2&quot;).html(max);

$(&quot;#esempio4&quot;).keyup(function(){
    var num = $(this).val().length;
    $(&quot;#contatore2&quot;).html(max-num);
});</pre>
<p>Prima di tutto creo una variabile globale<strong> max</strong> che corrisponde al contenuto dell&#8217;attributo <strong>maxlength</strong> dell&#8217;elemento con id <em>esempio4</em>, che in questo caso sarà 15.<br />
Adesso che so qual&#8217;è il numero massimo di caratteri desiderato, lo indico all&#8217;utente scrivendolo dentro allo span con id <em>contatore2</em>.</p>
<p>Adesso, sfruttando ancora una volta la funzione <strong>.keyup()</strong>, salvo dentro alla variabile <strong>num</strong> creata al volo il numero di caratteri fin&#8217;ora scritti nell&#8217;input, come visto nell&#8217;esempio precedente.</p>
<p>Quindi, scrivo dentro allo span con id <em>contatore2</em> il numero di caratteri ancora disponibili, calcolato come sottrazione del numero massimo con quello corrente.</p>
<input id="esempio4" class="inputTut" maxlength="15" type="text" /><span id="contatore2" class="count"> </span></p>
<h2>Ottenere il valore del radio button selezionato</h2>
<p>Adesso vediamo il caso in cui abbiamo una serie di<strong> input di tipo radio</strong> e al click su un qualche pulsante (tipo quello per l&#8217;<a href="http://www.bittrack.it/archives/creare-un-ajax-contact-form-con-validazione-dei-dati/" target="_blank">invio di un email</a>) vogliamo sapere quale<strong> radio button</strong> è stato selezionato dall&#8217;utente.</p>
<p>Prima di tutto, come al solito, va definita la struttura HTML che stavolta dovrà contenere vari <strong>input di tipo radio</strong> e un altro elemento tipo un link (ma può essere qualsiasi cosa) da usare come pulsante per azionare lo script.</p>
<pre class="brush: xml;">&lt;form id=&quot;esempio5&quot;&gt;
  &lt;input type=&quot;radio&quot; name=&quot;radioTest&quot; value=&quot;jQuery&quot; checked=&quot;checked&quot; /&gt;jQuery
  &lt;input type=&quot;radio&quot; name=&quot;radioTest&quot; value=&quot;spacca&quot; /&gt;spacca
  &lt;input type=&quot;radio&quot; name=&quot;radioTest&quot; value=&quot;di&quot; /&gt;di
  &lt;input type=&quot;radio&quot; name=&quot;radioTest&quot; value=&quot;brutto&quot; /&gt;brutto
  &lt;button id=&quot;btn3&quot; type=&quot;button&quot;&gt;Quale ho selezionato?&lt;/button&gt;
  &lt;span id=&quot;result&quot;&gt;&lt;/span&gt;
&lt;/form&gt;</pre>
<p>Uno degli input dovrà avere l&#8217;attributo <strong>checked=&#8221;checked&#8221;</strong> che indica che è stato selezionato, perché è buona pratica indicare un valore predefinito quando si ha a che fare con i <strong>radio button</strong>.<br />
Notare che ho aggiunto anche uno <em>span</em> con id <em>result</em>, utile ai soli fini dell&#8217;esempio.<br />
Ecco il codice jQuery</p>
<pre class="brush: jscript;">$(&quot;#btn3&quot;).click(function(){
   var selezione = $(&quot;#esempio5 input:checked&quot;).val();
   $(&quot;#result&quot;).html(selezione);
});</pre>
<p>Prima di tutto individuo l&#8217;elemento da cliccare per avviare la funzione, in questo caso si tratta di un <strong>button</strong> con id<em> btn3</em>.<br />
Dopo che è stato cliccato, salvo dentro ad una variabile &#8220;<strong>selezione</strong>&#8221; il valore ( <strong>.val()</strong> ) dell&#8217;input selezionato ( <strong>input:checked</strong> ) contenuto dentro all&#8217;elemento che ha id <em>esempio5</em> ( <strong>#esempio5</strong> ).<br />
Fatto ciò, ho il contenuto del <strong>radio button</strong> scelto dentro alla variabile e posso decidere cosa farne; in questo esempio lo mostro all&#8217;utente scrivendolo dentro allo <strong>span</strong> con id <em>selezione</em>.</p>
<form id="esempio5">
<input class="radioInputTut" checked="checked" name="radioTest" type="radio" value="jQuery" />jQuery</p>
<input class="radioInputTut" name="radioTest" type="radio" value="spacca" />spacca</p>
<input class="radioInputTut" name="radioTest" type="radio" value="di" />di</p>
<input class="radioInputTut" name="radioTest" type="radio" value="brutto" />brutto<br />
<button id="btn3" class="buttonTut">Quale ho selezionato?</button><span id="result"> </span></form>
<h2>Controllare se una checkbox è stata selezionata</h2>
<p>Se nel nostro form abbiamo invece bisogno di controllare se una <strong>checkbox</strong> è stata selezionata o meno, possiamo fare come segue.<br />
Codice HTML:</p>
<pre class="brush: xml;">&lt;form id=&quot;esempio6&quot;&gt;
  &lt;input type=&quot;checkbox&quot; value=&quot;jQuery&quot; /&gt;Controllo sulla checkbox
  &lt;button id=&quot;btn4&quot; type=&quot;button&quot;&gt;La checkbox è stata selezionata?&lt;/button&gt;
  &lt;span id=&quot;result2&quot;&gt;&lt;/span&gt;
&lt;/form&gt;</pre>
<p>Codice jQuery:</p>
<pre class="brush: jscript;">$(&quot;#btn4&quot;).click(function(){
  if( $(&quot;#esempio6 input&quot;).is(&quot;:checked&quot;) ){
    //Cosa fare se è stato selezionato
   $(&quot;#result2&quot;).html(&quot;Certo, non lo vedi?&quot;);
  }else{
    //Altrimenti fai questo
   $(&quot;#result2&quot;).html(&quot;No&quot;);
  }</pre>
<p>Tradotto a parole: quando faccio click sull&#8217;elemento con id <em>btn4</em>, se l&#8217;<strong>input</strong> che si trova dentro all&#8217;elemento con id <em>#esempio6</em> possiede la pseudo-classe <strong>:checked</strong> (cioè è stato selezionato), cerca l&#8217;elemento con id <em>#result2</em> e scrivi al suo interno <em>&#8220;Certo, non lo vedi?&#8221;</em>; in caso contrario scrivi <em>&#8220;No&#8221;</em>.</p>
<form id="esempio6">
<input class="radioInputTut" type="checkbox" value="jQuery" />Controllo sulla checkbox<br />
<button id="btn4" class="buttonTut">La checkbox è stata selezionata?</button><span id="result2"> </span><br />
</form>
<p>Ovviamente quando andrai ad utilizzare questo metodo, avrai bisogno di ben altro rispetto che scrivere delle stringhe fini a se stesse dentro a uno span, io ti ho dato solo indicazione su come fare il controllo sulla <strong>checkbox</strong>.</p>
<p>Notare che per indicare la checkbox ho usato come selettore <code>$("#esempio6 input")</code> che però è un po&#8217; troppo generico e andrà a cercare ogni input dentro a <em>#esempio6</em>.<br />
Per essere sicuri che si tratti della<strong> checkbox </strong>potresti dare a questa un <strong>id</strong> o una<strong> classe</strong> specifica e selezionarla usando <code>$(".nomeclasse")</code> oppure <code>$("#nomeID")</code><br />
Altrimenti potresti anche usare uno dei codidetti &#8220;<strong><a href="http://css-tricks.com/attribute-selectors/" target="_blank">Attribute Selectors</a></strong>&#8221; del CSS. Scrivendo <code>$("#esempio6 input[type=checkbox]")</code> indicherai solo gli input di tipo <strong>checkbox </strong>dentro a <em>#esempio6</em>.</p>
<h2>Fine</h2>
<p>Anche per oggi la lezione su jQuery finisce qui. Spero di essere stato d&#8217;aiuto e se avrai qualche richiesta specifica, non esitare a lasciare un commento <img src='http://www.bittrack.it/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> .</p>


<p>Articoli correlati:<ol><li><a href='http://www.bittrack.it/archives/primi-passi-con-jquery-1/' rel='bookmark' title='Permanent Link: Primi passi con jQuery &#8211; 1'>Primi passi con jQuery &#8211; 1</a></li>
<li><a href='http://www.bittrack.it/archives/primi-passi-con-jquery-2/' rel='bookmark' title='Permanent Link: Primi passi con jQuery &#8211; 2'>Primi passi con jQuery &#8211; 2</a></li>
<li><a href='http://www.bittrack.it/archives/creare-un-anteprima-dinamica-dei-commenti/' rel='bookmark' title='Permanent Link: Creare un anteprima dinamica dei commenti'>Creare un anteprima dinamica dei commenti</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/primi-passi-con-jquery-%e2%80%93-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sostituire i font con Cufón</title>
		<link>http://www.bittrack.it/archives/sostituire-i-font-con-cufon/</link>
		<comments>http://www.bittrack.it/archives/sostituire-i-font-con-cufon/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 23:59:17 +0000</pubDate>
		<dc:creator>Raspo</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=981</guid>
		<description><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2010/01/typography.png" class="attachment-post-thumbnail wp-post-image" alt="typography" title="typography" /></div>Ci sono numerosi metodi per sostituire gli ormai noiosi fonts supportati dai browser web come Arial, Verdana, Courier, etc con altri &#8220;non-nativi&#8221; e sicuramente più accattivanti. Tra i più famosi vorrei citare il vetusto sIFR basato su Flash, la proprietà CSS3 @font-face che sta piano piano prendendo piede, l&#8217;ottimo servizio Typekit purtropppo a pagamento e [...]]]></description>
			<content:encoded><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2010/01/typography.png" class="attachment-post-thumbnail wp-post-image" alt="typography" title="typography" /></div><p>Ci sono numerosi metodi per sostituire gli ormai noiosi fonts supportati dai browser web come Arial, Verdana, Courier, etc con altri &#8220;non-nativi&#8221; e sicuramente più accattivanti.<br />
Tra i più famosi vorrei citare il vetusto <strong><a target="_blank" href="http://www.mikeindustries.com/blog/sifr/">sIFR</a></strong> basato su Flash, la proprietà CSS3 <strong>@font-face</strong> che sta piano piano prendendo piede, l&#8217;ottimo servizio <strong><a target="_blank" href="http://typekit.com/">Typekit</a></strong> purtropppo a pagamento e altri metodi basati su javascript come <strong><a target="_blank" href="http://typeface.neocracy.org/">Typeface</a></strong> e <strong><a target="_blank" href="http://cufon.shoqolate.com/generate/">Cufón</a></strong>.<span id="more-981"></span></p>
<h2>Cufón</h2>
<p>Senza un motivo ben preciso, forse perché mi sono trovato bene quando ho avuto modo di provarlo, vorrei analizzare il funzionamento di quest&#8217;ultimo.</p>
<p>Come precedentemente accennato, si tratta di un metodo completamente basato sui javascript, perciò, chi non li avesse abilitati non vedrebbe alcuna differenza (ma si presuppone che nessuno abbia di questi problemi al giorno d&#8217;oggi).</p>
<h2>Come si procede?</h2>
<p>Nella prima parte del procedimento dobbiamo creare un file javascript che contenga le informazioni riguardo al font che andremo ad usare.<br />
Nella seconda parte andrà applicato alla pagina HTML.</p>
<h2>Generare il Font</h2>
<ol>
<li>Si sceglie il font che vogliamo usare. Con questo intendo che dovremo proprio procurarci il file <strong>.TTF</strong> <strong>.OTF</strong> o <strong>.PFB</strong> e tenerlo a portata di mano. Procuriamoci anche le versioni corsive e in grassetto se riteniamo possano tornarci utili</li>
<li>Andiamo sul sito <a target="_blank" href="http://cufon.shoqolate.com/generate/">http://cufon.shoqolate.com/generate/</a>.</li>
<li>Nella parte alta della pagina ci sono quattro campi in cui possiamo caricare il file del font nella sua versione regolare, quella in grassetto, quella in corsivo e quella in grassetto corsivo. <strong>Solamente la prima è obbligatoria</strong>. Nel mio caso, voglio usare la versione regolare e quella in grassetto, quindi caricherò solo queste due.<br />
<a href="http://www.bittrack.it/wp-content/uploads/2010/01/cufon-generate.png"><img class="alignnone size-medium wp-image-1031" title="cufon-generate" src="http://www.bittrack.it/wp-content/uploads/2010/01/cufon-generate-600x317.png" alt="cufon-generate" width="600" height="317" /></a></li>
<li>Fatto ciò, è importante assicurarsi di aver messo un segno di spunta per accettare l&#8217;<a target="_blank" href="http://it.wikipedia.org/wiki/EULA">EULA</a> che dichiara che il font scelto permette il Web Embedding. Per evitare di avere problemi riguardo a questo punto, consiglio vivamente l&#8217;utilizzo di font completamente Open Source come quello in esempio (<a target="_blank" href="http://www.campivisivi.net/titillium/?page_id=2">Titillium</a>).</li>
<li>Saltando tutte le impostazioni che ci vengono messe a disposizione, andiamo in fondo alla pagina e stavolta dobbiamo accettare i termini del contratto del servizio Cufón.</li>
<li><strong>Let&#8217;s do this!</strong> Dovrebbe partire il download di un file<strong> .font.js</strong> contenente tutte le informazioni riguardo al font caricato. Il file in questione potrebbe avere un nome assurdo e molto lungo, possiamo rinominarlo senza problemi.</li>
</ol>
<h2>Applicazione</h2>
<ol>
<li>Sempre dal <a target="_blank" href="http://cufon.shoqolate.com/generate/">sito di Cufón</a> facciamo click su download per scaricare il file javascript (cufon-yui.js) che contiene il &#8220;motore&#8221; vero e proprio di Cufón.</li>
<li>Apriamo un foglio HTML e nella sezione <strong>&lt;head&gt;</strong> carichiamo prima il <strong>cufon-yui.js</strong> e successivamente il file .font.js del font opportunamente rinominato, assicurandoci che i link siano corretti.
<pre class="brush: xml;">
&lt;head&gt;
    ...
    &lt;script type=&quot;text/javascript&quot; src=&quot;js/cufon-yui.js&quot; &gt;&lt;/script&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;js/TitilliumCufon.font.js&quot; &gt;&lt;/script&gt;
    ...
&lt;/head&gt;
</pre>
</li>
<li>Aggiungiamo un po&#8217; di contenuto fittizio alla pagina. Aggiungiamo anche dei titoli nei tag <strong>H1</strong>, <strong>H2</strong>, <strong>H3</strong>, etc perchè è a questi che generalmente viene applicato il cufon per motivi di accessibilità e per non appesantire troppo i tempi di caricamento della pagina. In definitiva, direi che non è buona pratica sostituire il font a tutto il testo, ma è pur sempre fattibile.</li>
<pre class="brush: xml;">&lt;h2&gt;Titolo di qualche genere&lt;/h2&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua....&lt;/p&gt;
&lt;h3&gt;Altro titolo lorem ipsum dolor sit amet&lt;/h3&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua...&lt;/p&gt;</pre>
<li>Tornando nel <strong>&lt;head&gt;</strong> possiamo finalmente caricare lo script indicando quali tag HTML sostituire con il nuovo font in questo modo.
<pre class="brush: xml;">
&lt;script type=&quot;text/javascript&quot;&gt;

    Cufon.replace('h1,h2,h3,h4,h5,h6');
    //I nomi dei tag vanno separati con le virgole

&lt;/script&gt;
</pre>
</li>
<li>Aprendo la pagina HTML nel browser, il risultato dovrebbe essere qualcosa del genere (tutto dipende dalle impostazioni usate nel css).<br />
<a href="http://www.bittrack.it/wp-content/uploads/2010/01/cufon-applicato.png"><img class="alignnone size-medium wp-image-1057" title="cufon-applicato" src="http://www.bittrack.it/wp-content/uploads/2010/01/cufon-applicato-600x289.png" alt="cufon-applicato" width="600" height="289" /></a></li>
</ol>
<h2>Ulteriori impostazioni</h2>
<p>Quando abbiamo attivato lo script al punto 4, ci siamo limitati a indicare una serie di tag HTML, ma è possibile designare classi o ID specifici utilizzando i selettori CSS.<br />
Se per esempio volessimo applicare il font a tutto ciò che ha la classe &#8220;font&#8221; basterà indicarla in questo modo.</p>
<pre class="brush: xml;">
&lt;script type=&quot;text/javascript&quot;&gt;

    Cufon.replace('h1,h2,h3,h4,h5,h6,.font');
    //Usa i classici selettori CSS .font per la classe e #font per l'ID

&lt;/script&gt;
</pre>
<p>Ultima cosa che vorrei segnalare, se applichiamo il cufon ai link, non funzionerà lo status hover con le impostazioni di default. Per abilitarlo basta aggiungere questa opzione.</p>
<pre class="brush: xml;">
&lt;script type=&quot;text/javascript&quot;&gt;

    Cufon.replace('h1,h2,h3,h4,h5,h6,.font');
    //Usa i classici selettori CSS .font per la classe e #font per l'ID

&lt;/script&gt;
</pre>
<p>Ultima cosa che vorrei segnalare, se applichiamo il cufon ai link, non funzionerà lo status <strong>hover</strong> con le impostazioni di default. Per abilitarlo basta aggiungere questa opzione.</p>
<pre class="brush: xml;">
&lt;script type=&quot;text/javascript&quot;&gt;

    Cufon.replace('h1,h2,h3,h4,h5,h6,.font',{ hover: 'true' });

&lt;/script&gt;
</pre>
<h3>Aggiornamento</h3>
<p>Se Cufon non dovesse funzionare su browser obsoleti tipo IE6, IE7 o le versioni di Firefox inferiori alla 3.5, potete risolvere il problema caricando un framework javascript (tipo jQuery), prima dell&#8217;inclusione di <strong>Cufon-yui.js</strong>, in questo modo:</p>
<pre class="brush: xml;">&lt;head&gt;
...
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/cufon-yui.js&quot; &gt;&lt;/script&gt;
...
&lt;/head&gt;</pre>
<p>Il problema è dovuto al fatto che questi browser non riconoscono i selettori css tipo <em>.nomeClasse</em> o <em>#nomeId</em>.</p>
<p>Di seguito vi lascio il link ad una pagina demo molto sempliciotta che mostra i risultati ottenuti e il download del pacchetto con tutti i file (compreso il font). Alla prossima! <img src='http://www.bittrack.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: center;"><a class="down" href="http://www.bittrack.it/download/TutorialCufon.rar"></a><a class="demo" target="_blank" href="http://www.bittrack.it/demo/cufonDemo/index.html"></a></p>
<p>Il font usato nell&#8217;esempio, <strong>Titillium</strong>, è completamente Open Source e può essere scaricato nella versione completa dal <a target="_blank" href="http://www.campivisivi.net/titillium/?page_id=2">sito ufficiale</a>.</p>


<p>Articoli correlati:<ol><li><a href='http://www.bittrack.it/archives/aggiungere-o-sostituire-manualmente-le-smiley-di-wordpress/' rel='bookmark' title='Permanent Link: Aggiungere o sostituire manualmente le smiley di wordpress'>Aggiungere o sostituire manualmente le smiley di wordpress</a></li>
<li><a href='http://www.bittrack.it/archives/primi-passi-con-jquery-1/' rel='bookmark' title='Permanent Link: Primi passi con jQuery &#8211; 1'>Primi passi con jQuery &#8211; 1</a></li>
<li><a href='http://www.bittrack.it/archives/creare-un-anteprima-dinamica-dei-commenti/' rel='bookmark' title='Permanent Link: Creare un anteprima dinamica dei commenti'>Creare un anteprima dinamica dei commenti</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/sostituire-i-font-con-cufon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Primi passi con jQuery &#8211; 2</title>
		<link>http://www.bittrack.it/archives/primi-passi-con-jquery-2/</link>
		<comments>http://www.bittrack.it/archives/primi-passi-con-jquery-2/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 20:25:01 +0000</pubDate>
		<dc:creator>Raspo</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[funzioni]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=901</guid>
		<description><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2009/11/primi-passi-con-jquery.jpg" class="attachment-post-thumbnail wp-post-image" alt="primi-passi-con-jquery" title="primi-passi-con-jquery" /></div>Eccoci qua con una nuova lezione di Jquery. L&#8217;altra volta abbiamo visto degli esempi molto semplici di funzioni jquery, che però ti dovrebbero aver già fatto intuire come sia la struttura di qualsiasi altro script. Struttura di base Ricapitolando, abbiamo visto che tutto il codice jquery deve stare all&#8217;interno di $(document).ready(function() { &#8230; }); per [...]]]></description>
			<content:encoded><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2009/11/primi-passi-con-jquery.jpg" class="attachment-post-thumbnail wp-post-image" alt="primi-passi-con-jquery" title="primi-passi-con-jquery" /></div><p>Eccoci qua con una nuova lezione di <strong>Jquery</strong>.<br />
L&#8217;<a href="http://www.bittrack.it/archives/primi-passi-con-jquery-1/" target="_blank">altra volta</a> abbiamo visto degli esempi molto semplici di funzioni jquery, che però ti dovrebbero aver già fatto intuire come sia la struttura di qualsiasi altro script.<br />
<span id="more-901"></span></p>
<h2>Struttura di base</h2>
<p>Ricapitolando, abbiamo visto che tutto il codice jquery deve stare all&#8217;interno di <em>$(document).ready(function() {</em> &#8230;  <em>});</em> per funzionare.</p>
<p>Fatto questo, avremo sempre bisogno di un <strong>oggetto</strong> da cui partire, come ad esempio: <em>$(”#prova”)</em>. Nei casi analizzati, si trattava di un oggetto con un preciso <strong>ID</strong> o <strong>classe</strong>, ma non sempre sarà così e quindi ricorreremo a tutta una serie di <strong><a href="http://docs.jquery.com/Selectors" target="_blank">selettori</a></strong>, che ho intensione di vedere più avanti.</p>
<p>Una volta individuato l&#8217;oggetto, abbiamo bisogno di un <strong><a href="http://docs.jquery.com/Events" target="_blank">evento</a></strong>, per proseguire nell&#8217;esecuzione della funzione. Anche in questo caso, abbiamo visto solo l&#8217;evento <strong><a href="http://docs.jquery.com/Events/click#fn" target="_blank">.click()</a></strong>, che fa partire una certa funzione nel momento in cui clicchiamo sull&#8217;oggetto indicato, ma ce ne saranno altri da prendere in considerazione.</p>
<p>Indicato l&#8217;evento scatenante, possiamo passare alla descrizione della funzione vera e propria, quindi ci servirà nuovamente un <strong>oggetto</strong> su cui lavorare e far partire le animazioni e gli effetti vari che la libreria jQuery ci mette a disposizione. Fin&#8217;ora hai visto solo il<strong> .fadeIn()</strong>.<br />
Esempio:</p>
<pre class="brush: jscript;">
  $(&quot;#prova&quot;).click(function() {
     $(&quot;.hide&quot;).fadeIn();
     return false;
  });
</pre>
<p>Questa che ho cercato di tracciare è la struttura che seguiremo nel 90% dei casi:</p>
<p>selettore + evento &#8211;&gt; selettore + effetto</p>
<p>Ora non resta altro che vedere il maggior numero possibile di selettori, eventi ed effetti, per riuscire a padroneggiare al meglio questo potente strumento chiamato jQuery.</p>
<h2>Animare gli elementi cambiandone dinamicamente lo stile</h2>
<p>Per prima cosa dobbiamo definire la struttura HTML e CSS da manipolare.</p>
<p><strong>Codice HTML:</strong></p>
<pre class="brush: xml;">
&lt;ul id=&quot;animazione&quot;&gt;
    &lt;li&gt;Segui&lt;/li&gt;
    &lt;li&gt;i tutorial&lt;/li&gt;
    &lt;li&gt;di jquery&lt;/li&gt;
    &lt;li&gt;su&lt;/li&gt;
    &lt;li&gt;BitTrack.it&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p><strong>Codice CSS:</strong></p>
<pre class="brush: css;">
#animazione {
    list-style: none;
}
#animazione li {
    width: 200px;
    padding: 5px;
    border: 1px solid #ccc;
    background: #eee;
}
</pre>
<p>Il risultato è questo:</p>
<ul id="animazione">
<li>Segui</li>
<li>i tutorial</li>
<li>di jquery</li>
<li>su</li>
<li>BitTrack.it</li>
</ul>
<p>Una semplice lista con ID <em>animazione</em>, contenente elementi di larghezza 200px (210px per i più pignoli <img src='http://www.bittrack.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). Vogliamo far sì che, cliccando su un qualsiasi elemento della lista, la sua larghezza raddoppi a 400px con un&#8217;animazione.</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;

$(document).ready(function(){

    $(&quot;#animazione li&quot;).click(function(){
        $(this).animate({width: &quot;400px&quot;}, 1000);
    });

});

&lt;/script&gt;
</pre>
<p>Analizziamo il codice passo passo.</p>
<p>Con <strong>$(&#8220;#animazione li&#8221;)</strong> indico qualsiasi elemento
<li> appartenente alla lista con ID <em>animazione</em>, esattamente come avviene nel CSS. Usando l&#8217;evento <strong>.click(function){</strong> &#8230; <strong>});</strong> scrivo dentro alle graffe l&#8217;effetto che voglio ottenere.</p>
<p>Per eseguire un effetto però ho bisogno di un oggetto su cui lavorare e si da il caso che si tratti proprio dell&#8217;elemento che ho appena cliccato! Come fare per individuare esattamente quell&#8217;elemento della lista piuttosto che un altro? Usando <strong>$(this)</strong>.<br />
Si tratta di un selettore molto utile che, in questo caso, fa riferimento all&#8217;oggetto della funzione <em>click()</em>.</p>
<p>Cosa sia esattamente <strong>this</strong> non è semplice da spiegare (almeno per me), è una cosa che si riesce a comprendere a pieno soltanto con l&#8217;esperienza.<br />
Per ora ti basta sapere che, una volta fatto click su un elemento della lista, <strong>this</strong> indicherà esattamente quell&#8217;elemento; quindi non resta altro da fare che far partire l&#8217;effetto desiderato con <strong>animate()</strong>.</p>
<h2>Animate</h2>
<p><strong><a href="http://docs.jquery.com/Effects/animate#paramsdurationeasingcallback" target="_blank">Animate()</a></strong> è una funzione molto potente che ci permette di manipolare l&#8217;oggetto desiderato, cambiandone lo stile per mezzo di animazioni. Quando parlo di stile, intendo lo stesso che usiamo nei css. Per esempio, in questo caso dobbiamo aumentare la larghezza fino a 400px, scriverò:</p>
<pre class="brush: jscript;">$(this).animate({width: &quot;400px&quot;});</pre>
<p>Come vedi, i parametri dell&#8217;animazione (quelli tra parentesi graffe) vengono indicati in modo molto simile alle dichiarazioni del css (fatta eccezione per le virgolette).<br />
Altra cosa da notare, è il fatto che, come ti avevo preannunciato l&#8217;<a href="http://www.bittrack.it/archives/primi-passi-con-jquery-1/" target="_blank">altra volta</a>, i <strong>parametri</strong> di una funzione <strong>seguono una loro precisa formattazione</strong>.<br />
Nel caso di <em>animate()</em> devi inserire i parametri dell&#8217;animazione vera e propria dentro parentesi graffe e se vorrai indicare la durata dell&#8217;effetto (come nel nostro caso), dovrai inserirla al di fuori delle parentesi preceduta da una virgola, in questo modo.</p>
<pre class="brush: jscript;">$(this).animate({width: &quot;400px&quot;}, 1000);</pre>
<p>Questo è ciò che abbiamo ottenuto:</p>
<ul id="animazione1">
<li>Segui</li>
<li>i tutorial</li>
<li>di jquery</li>
<li>su</li>
<li>BitTrack.it</li>
</ul>
<h2>Eseguire la funzione inversa facendo click sullo stesso elemento</h2>
<p>L&#8217;animazione è riuscita alla grande, ma vediamo di rendere il nostro script più completo, facendo in modo che, cliccando una seconda volta sugli elementi la cui larghezza è aumentata, questi tornino alla situazione di partenza con un&#8217;altra animazione.</p>
<p>Anche quì ci sono molte strade, ma la pratica più usata consiste nell&#8217;assegnare una classe agli elementi la cui larghezza è stata portata a 400px, dopo di che, se viene fatto nuovamente click su uno di questi elementi, attraverso un controllo, saremo in grado di capire se la larghezza di quel dato elemento sia da aumentare o diminuire, a seconda che quella classe sia presente o no.</p>
<p>Anche in questo caso risulta troppo difficile da spiegare a parole, quindi passiamo ai fatti.</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;

$(document).ready(function(){

    $(&quot;#animazione li&quot;).click(function(){
        if($(this).hasClass(&quot;largo&quot;)){
            $(this).removeClass(&quot;largo&quot;).animate({width: &quot;200px&quot;}, 1000);
        } else{
            $(this).addClass(&quot;largo&quot;).animate({width: &quot;400px&quot;}, 1000);
        }
    });

});

&lt;/script&gt;
</pre>
<p>Analizzando il codice: come punto di partenza abbiamo sempre il click su un elemento della lista.</p>
<pre class="brush: jscript;">
    $(&quot;#animazione li&quot;).click(function(){
        //...
    });
</pre>
<p>Dopo di che, se quel preciso elemento possiede la classe <strong>largo</strong> (nome a caso scelto da me con molta fantasia) e quindi è già lungo 400px, riportalo a 200px e toglili la classe <strong>largo</strong>.</p>
<pre class="brush: jscript;">if( $(this).hasClass(&quot;largo&quot;) ) {
    $(this).removeClass(&quot;largo&quot;).animate({width: &quot;200px&quot;}, 1000);
}</pre>
<p>Altrimenti (cioè se non possiede quella data classe), aumenta la lunghezza a 400px e aggiungigli la classe <strong>largo</strong>.</p>
<pre class="brush: jscript;">
else{
    $(this).addClass(&quot;largo&quot;).animate({width: &quot;400px&quot;}, 1000);
}
</pre>
<p>Ecco il risultato finale:</p>
<ul id="animazione2">
<li>Segui</li>
<li>i tutorial</li>
<li>di jquery</li>
<li>su</li>
<li>BitTrack.it</li>
</ul>
<p>Mi scuso se sono andato un po&#8217; di fretta in questi ultimi passaggi, nonostante abbia utilizzato funzioni molto utili ed importanti tipo <strong>hasClass()</strong>, <strong>addClass</strong>,<strong> removeClass</strong>, ma il loro significato è talmente intuitivo ed evidente che non mi sembrava il caso di perderci troppo tempo.</p>
<h2>Fine</h2>
<p>Anche questa &#8220;lezione&#8221; è finita, spero di riuscire a pubblicare le prossime più velocemente, poichè gli argomenti da trattare su jQuery sono tantissimi, devo solo scegliere l&#8217;ordine da seguire. Come al solito, se hai suggerimenti o critiche, i commenti sono a tua disposizione. Alla prossima. <img src='http://www.bittrack.it/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </p>


<p>Articoli correlati:<ol><li><a href='http://www.bittrack.it/archives/primi-passi-con-jquery-1/' rel='bookmark' title='Permanent Link: Primi passi con jQuery &#8211; 1'>Primi passi con jQuery &#8211; 1</a></li>
<li><a href='http://www.bittrack.it/archives/primi-passi-con-jquery-%e2%80%93-3/' rel='bookmark' title='Permanent Link: Primi passi con jQuery – 3'>Primi passi con jQuery – 3</a></li>
<li><a href='http://www.bittrack.it/archives/creare-un-anteprima-dinamica-dei-commenti/' rel='bookmark' title='Permanent Link: Creare un anteprima dinamica dei commenti'>Creare un anteprima dinamica dei commenti</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/primi-passi-con-jquery-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creare un anteprima dinamica dei commenti</title>
		<link>http://www.bittrack.it/archives/creare-un-anteprima-dinamica-dei-commenti/</link>
		<comments>http://www.bittrack.it/archives/creare-un-anteprima-dinamica-dei-commenti/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 21:59:51 +0000</pubDate>
		<dc:creator>Raspo</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[funzioni]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=703</guid>
		<description><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2009/10/anteprima-commento.jpg" class="attachment-post-thumbnail wp-post-image" alt="anteprima-commento" title="anteprima-commento" /></div>Avere un anteprima del commento che si sta scrivendo, risulta molto utile, specialmente se si vuole utilizzare qualche tag html tipo quello per inserire link, citazioni o mettere il testo grassetto, o in corsivo. Per far ciò bastano poche semplici righe di jquery. Codice HTML Innanzitutto ci serve il codice HTML della textarea in cui l&#8217;utente [...]]]></description>
			<content:encoded><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2009/10/anteprima-commento.jpg" class="attachment-post-thumbnail wp-post-image" alt="anteprima-commento" title="anteprima-commento" /></div><p>Avere un anteprima del commento che si sta scrivendo, risulta molto utile, specialmente se si vuole utilizzare qualche tag html tipo quello per inserire link, citazioni o mettere il testo grassetto, o in corsivo. Per far ciò bastano poche semplici righe di <strong>jquery</strong>.<span id="more-703"></span></p>
<h2>Codice HTML</h2>
<p>Innanzitutto ci serve il codice HTML della textarea in cui l&#8217;utente inserisce il commento.</p>
<pre class="brush: xml;">
&lt;body&gt;

	&lt;h3&gt;Inserisci del testo per far apparire l'anteprima&lt;/h3&gt;
	&lt;textarea id=&quot;commento&quot;&gt;&lt;/textarea&gt;

&lt;/body&gt;
</pre>
<p>Di seguito aggiungiamo un DIV vuoto, dove vogliamo che appaia l&#8217;anteprima e diamoli un id, in questo caso l&#8217;ho chiamato &#8220;anteprima&#8221;.</p>
<pre class="brush: xml;">&lt;body&gt;

	&lt;h3&gt;Inserisci un commento per far apparire l'anteprima&lt;/h3&gt;
	&lt;textarea id=&quot;commento&quot;&gt;&lt;/textarea&gt;

	&lt;div id=&quot;anteprima&quot;&gt;
		&lt;h3&gt;Anteprima del commento&lt;/h3&gt;
		&lt;div&gt;&lt;!-- l'anteprima apparirà qui --&gt;&lt;/div&gt;
	&lt;/div&gt;

&lt;/body&gt;
</pre>
<p>Per l&#8217;esattezza, l&#8217;anteprima del commento non apparirà dentro al div &#8220;<em>anteprima</em>&#8221; ma in quello vuoto che si trova al suo interno.</p>
<p>Nascondiamo il tutto con un tocco di CSS.</p>
<pre class="brush: css;">#anteprima {
	display: none;
}</pre>
<p>In questo modo, non vedremo neanche la scritta &#8220;Anteprima del commento&#8221;;  lo faremo riapparire al momento giusto con lo script.</p>
<h2>Script Jquery</h2>
<p>Come al solito, assicuriamoci di aver incluso la libreria jquery nell&#8217;head e usando un file esterno o la stessa pagina html, creiamo il nostro script.</p>
<pre class="brush: jscript;">$(document).ready(function(){

	$(&quot;#commento&quot;).keyup(function() {
          //funzione da eseguire
	});

});</pre>
<p>Per far sì che lo script inizi a lavorare, usiamo l&#8217;<a href="http://docs.jquery.com/Events/keyup" target="_blank">evento jquery <strong>keyup</strong></a>, che esegue una certa funzione quando viene premuto (e rilasciato) un tasto mentre il focus si trova sulla textarea (che ha ID commento).</p>
<pre class="brush: jscript;">$(document).ready(function(){

	$(&quot;#commento&quot;).keyup(function () {
		var comment = $(this).val();
		$(&quot;#anteprima&quot;).show().children('div').html(comment);
	});

});</pre>
<p>La funzione da eseguire è molto semplice:</p>
<ol>
<li>Prendo il contenuto della textarea e lo salvo nella variabile <strong>comment</strong>.</li>
<li>Faccio apparire il div con id <em>anteprima</em></li>
<li>Seleziono l&#8217;altro div vuoto che si trova al suo interno e vi scrivo il contenuto della variabile <strong>comment</strong> (cioè il testo del commento stesso)</li>
</ol>
<p>Abbiamo quasi finito, basta fare qualche prova e vediamo che i vari tag html tipo &lt;a&gt;, &lt;strong&gt;, &lt;i&gt; vengono perfettamente &#8220;interpretati&#8221; nell&#8217;anteprima.</p>
<p>C&#8217;è solo un problema: quando premiamo invio, il testo non va a capo ma aggiunge semplicemente uno spazio.</p>
<pre class="brush: jscript;">$(document).ready(function(){

	$(&quot;#commento&quot;).keyup(function () {
		var comment = $(this).val().replace(/\n/g, &quot;&lt;br /&gt;&quot;);
		$(&quot;#anteprima&quot;).show().children('div').html(comment);
	});

});</pre>
<p>Per correggere questo errore, basta agire sulla variabile comment e sostituire i <strong>\n</strong>, cioè i &#8220;simboli delle andate a capo&#8221; con dei <strong>&lt;br /&gt;</strong>.</p>
<h2>Fine</h2>
<p>Adesso lo script è completo e pronto all&#8217;uso. Puoi sperimentarlo aggiungendo un commento su questa pagina!</p>
<p style="text-align: center;"><a class="down" href="http://www.bittrack.it/download/anteprima%20commento.zip">Download</a></p>


<p>Articoli correlati:<ol><li><a href='http://www.bittrack.it/archives/creare-un-ajax-contact-form-con-validazione-dei-dati/' rel='bookmark' title='Permanent Link: Creare un ajax contact form con validazione dei dati'>Creare un ajax contact form con validazione dei dati</a></li>
<li><a href='http://www.bittrack.it/archives/primi-passi-con-jquery-2/' rel='bookmark' title='Permanent Link: Primi passi con jQuery &#8211; 2'>Primi passi con jQuery &#8211; 2</a></li>
<li><a href='http://www.bittrack.it/archives/primi-passi-con-jquery-%e2%80%93-3/' rel='bookmark' title='Permanent Link: Primi passi con jQuery – 3'>Primi passi con jQuery – 3</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/creare-un-anteprima-dinamica-dei-commenti/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Convertire volumi FAT in NTFS su Windows</title>
		<link>http://www.bittrack.it/archives/convertire-volumi-fat-in-ntfs-su-windows/</link>
		<comments>http://www.bittrack.it/archives/convertire-volumi-fat-in-ntfs-su-windows/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 22:43:25 +0000</pubDate>
		<dc:creator>Don Limo</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[fat32]]></category>
		<category><![CDATA[ntfs]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=709</guid>
		<description><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2009/10/filesystem.jpg" class="attachment-post-thumbnail wp-post-image" alt="filesystem" title="filesystem" /></div>Al giorno d&#8217;oggi l&#8217;unico ambito in cui è ancora usato il filesystem FAT, o la sua evoluzione FAT32, sono le penne USB. Con l&#8217;avvento delle NAND Flash le capacità di storage e la velocità di accesso ai dati sono state notevolmente incrementate, ma con le limitazioni del FAT si possono salvare file di dimensione massima [...]]]></description>
			<content:encoded><![CDATA[<div><img width="200" height="200" src="http://www.bittrack.it/wp-content/uploads/2009/10/filesystem.jpg" class="attachment-post-thumbnail wp-post-image" alt="filesystem" title="filesystem" /></div><p>Al giorno d&#8217;oggi l&#8217;unico ambito in cui è ancora usato il <a href="http://it.wikipedia.org/wiki/Filesystem" target="_blank">filesystem</a> <a href="http://it.wikipedia.org/wiki/File_Allocation_Table" target="_blank">FAT</a>, o la sua evoluzione <a href="http://it.wikipedia.org/wiki/FAT32#FAT32" target="_blank">FAT32</a>, sono le penne USB. Con l&#8217;avvento delle <a href="http://it.wikipedia.org/wiki/NAND_Flash#NAND_Flash" target="_blank">NAND Flash</a> le capacità di storage e la velocità di accesso ai dati sono state notevolmente incrementate, ma con le limitazioni del FAT si possono salvare file di dimensione massima pari a 4 GB. Vediamo come ovviare a questo problema usando l&#8217;<a href="http://it.wikipedia.org/wiki/NTFS" target="_blank">NTFS</a>.<span id="more-709"></span></p>
<h2>Premesse</h2>
<p>In genere, la conversione del filesystem da FAT/FAT32 a NTFS non comporta rischi di perdita dei dati, ma è sempre meglio eseguire un backup tanto per essere tutelati. Inoltre c&#8217;è da dire che il processo inverso, da NTFS a FAT, non è supportato nativamente da Windows. Di conseguenza se vorrete tornare a FAT dovrete usare programmi di terze parti o semplicemente formattare il disco/penna perdendo tutti i dati (a meno di preventivo backup, è ovvio!). A breve andrò a mostrarvi un piccolo tool a riga di comando che si chiama &#8220;convert.exe&#8221; e funziona perfettamente su tutte le versioni di Windows dall&#8217;XP in su.</p>
<h2>Convert.exe</h2>
<p>Il comando &#8220;convert&#8221; ha l&#8217;unico scopo di convertire volumi FAT in NTFS ed eseguendolo da prompt con l&#8217;opzione &#8220;/?&#8221; vi apparirà l&#8217;help del comando:</p>
<p><a href="http://www.bittrack.it/wp-content/uploads/2009/10/convert_help.png"><img class="alignnone size-medium wp-image-730" title="Help Convert.exe" src="http://www.bittrack.it/wp-content/uploads/2009/10/convert_help-300x139.png" alt="Help Convert.exe" width="300" height="139" /></a></p>
<p>L&#8217;help è chiarissimo, ma i parametri che ci interessano veramente sono tre:</p>
<ul>
<li>&#8220;/X&#8221; chiude tutti gli handle dei file aperti e se necessario smonta anche il volume.</li>
<li>&#8220;/NoSecurity&#8221; è consigliabile usarlo sulle penne USB in quanto alcuni computer potrebbero non leggere i file salvati a causa delle possibili limitazioni di permissioni che è possibile impostare sull&#8217;NTFS.</li>
<li>&#8220;/FS:NTFS&#8221; serve solo a specificare di convertire il volume in NTFS. Del tutto inutile se si considera che il convert non è abilitato alla conversione di nessun altro tipo di filesystem.</li>
</ul>
<p>Per convertire un volume FAT/FAT32 in NTFS dovrete eseguire da prompt, ovviamente con privilegi di amministratore, il seguente comando:</p>
<p><code>convert &lt;unità&gt;: /X /NoSecurity /FS:NTFS</code></p>
<p>Ma vediamo subito un esempio pratico:</p>
<p><a href="http://www.bittrack.it/wp-content/uploads/2009/10/convert_on_work.png"><img class="alignnone size-medium wp-image-743" title="Conversione Convert.exe" src="http://www.bittrack.it/wp-content/uploads/2009/10/convert_on_work-300x156.png" alt="Conversione Convert.exe" width="300" height="156" /></a></p>
<p>La conversione è andata a buon fine, adesso il vostro disco o la vostra penna USB usa il filesystem NTFS.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/convertire-volumi-fat-in-ntfs-su-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assegnare un indirizzo IP statico alla scheda di rete su Debian</title>
		<link>http://www.bittrack.it/archives/assegnare-un-indirizzo-ip-statico-alla-scheda-di-rete-su-debian/</link>
		<comments>http://www.bittrack.it/archives/assegnare-un-indirizzo-ip-statico-alla-scheda-di-rete-su-debian/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 10:05:34 +0000</pubDate>
		<dc:creator>Don Limo</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[ip statico]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[subnet mask]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=449</guid>
		<description><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/10/static-ip.jpg" class="attachment-post-thumbnail wp-post-image" alt="static-ip" title="static-ip" /></div>I motivi per desiderare un indirizzo IP statico invece che dinamico, possono essere i più disparati. Nel mio caso, dovevo configurarlo sul mio server di casa in modo da renderlo raggiungibile, sempre e comunque, senza dover fare ricerche sul DNS. Iniziamo col visualizzare alcune informazioni sull&#8217;interfaccia di rete. Nel mio caso è l&#8217;ethernet (eth0), ma [...]]]></description>
			<content:encoded><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/10/static-ip.jpg" class="attachment-post-thumbnail wp-post-image" alt="static-ip" title="static-ip" /></div><p>I motivi per desiderare un indirizzo IP statico invece che dinamico, possono essere i più disparati. Nel mio caso, dovevo configurarlo sul mio server di casa in modo da renderlo raggiungibile, sempre e comunque, senza dover fare ricerche sul DNS.<span id="more-449"></span></p>
<p>Iniziamo col visualizzare alcune informazioni sull&#8217;interfaccia di rete. Nel mio caso è l&#8217;ethernet (eth0), ma il concetto vale anche per il wifi (wlan0/wifi0) o qualsiasi altra interfaccia di rete.</p>
<pre><code>hive:/home/donlimo# ifconfig
eth0    Link encap:Ethernet  HWaddr 08:27:00:2f:08:a5
        inet addr:192.168.1.62  Bcast:192.168.1.255  Mask:255.255.255.0
        inet6 addr: fe80::a00:a7ff:fe5a:984d/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:805 errors:0 dropped:0 overruns:0 frame:0
        TX packets:606 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:796490 (777. KiB)  TX bytes:52540 (51.3 KiB)
        Interrupt:11 Base address:0xd020</code>
</pre>
<p>L&#8217;output del comando è molto chiaro. Le informazioni che ci interessano in particolare sono tre:</p>
<ul>
<li><em>inet addr:192.168.1.62</em></li>
<li><em>Bcast:192.168.1.255</em></li>
<li><em>Mask:255.255.255.0</em></li>
</ul>
<p>Il primo è l&#8217;indirizzo <a href="http://it.wikipedia.org/wiki/Internet_Protocol" target="_blank">IP</a>, il secondo è l&#8217;indirizzo di <a href="http://it.wikipedia.org/wiki/Broadcast" target="_blank">Broadcast</a> ed il terzo è la <a href="http://it.wikipedia.org/wiki/Subnet_mask" target="_blank">Submet Mask</a>. Sono tutti dati importantissimi ai fini della corretta configurazione della scheda di rete. In aggiunta a questi tre dati, ci serve sapere qual&#8217;è l&#8217;indirizzo IP del <a href="http://it.wikipedia.org/wiki/Gateway" target="_blank">gateway</a>: in una rete locale casalinga, di norma corrisponde ai primi tre numeri del nostro indirizzo IP con &#8220;1&#8243; come quarto numero. Nel mio caso è <em>192.168.1.1</em>. Se per voi è differente, fate riferimento al manuale delle istruzioni del vostro router/modem adsl dove è in genere messo in evidenza. A questo punto, non ci rimane che editare il file di configurazione <em>/etc/network/interfaces</em> per configurare il nostro IP statico.</p>
<p><code># nano /etc/network/interfaces</code></p>
<p>Assicuratevi di inserire le seguenti righe all&#8217;interno del file:</p>
<p><code># The primary network interface<br />
auto eth0<br />
iface eth0 inet static<br />
address 192.168.1.62<br />
netmask 255.255.255.0<br />
broadcast 192.168.1.255<br />
gateway 192.168.1.1</code></p>
<p>La terza riga potrebbe non apparire chiara alla maggior parte di voi, quindi vi do una veloce descrizione:</p>
<ul>
<li><strong>auto</strong>: identifica i dispositivi che vengono portati in stato di <em>up</em> al boot del sistema</li>
<li><strong>iface</strong>: identifica le interfacce da configurare</li>
<li><strong>inet</strong>: indica che l&#8217;interfaccia sarà collegata con una rete IPv4</li>
<li><strong>static</strong>: indica che l&#8217;indirizzo è impostato staticamente</li>
</ul>
<p>Per rendere effettive le modifiche, sarà necessario riavviare il servizio di rete.</p>
<p><code># /etc/init.d/networking restart</code></p>
<h2>Configurare i server DNS</h2>
<p>Se avete bisogno di configurare i DNS dovrete editare il file <em>/etc/resolv.conf</em>.</p>
<p><code># nano /etc/resolv.conf</code></p>
<p>Inserite le seguenti righe:</p>
<p><code>nameserver 208.67.222.222<br />
nameserver 208.67.220.220</code></p>
<p>Gli indirizzi IP che vedete corrispondo al servizio di DNS <a href="http://www.opendns.com/" target="_blank">OpenDNS</a>, ma nessuno vi vieta di configurare qualunque altro DNS vogliate.</p>
<h2>Ripristinare un indirizzo IP dinamico</h2>
<p>Se cambiate idea o volete tornare ad un indirizzo IP dinamico, cancellate le righe che abbiamo inserito e ripristinate quelle standard:</p>
<p><code>auto eth0<br />
iface eth0 inet dhcp</code></p>
<h2>Ulteriori informazioni</h2>
<p>Per chi ha esigenze più avanzate, può trovare informazioni più dettagliate nei manuali di <a href="http://www.annodex.net/cgi-bin/man/man2html?8+ifup" target="_blank">ifup</a> ed <a href="http://www.annodex.net/cgi-bin/man/man2html?interfaces" target="_blank">/etc/network/interface</a>.</p>


<p>Articoli correlati:<ol><li><a href='http://www.bittrack.it/archives/wake-on-lan-su-debian/' rel='bookmark' title='Permanent Link: Wake On Lan su Debian'>Wake On Lan su Debian</a></li>
<li><a href='http://www.bittrack.it/archives/come-impostare-utenti-virtuali-in-vsftpd-su-debian/' rel='bookmark' title='Permanent Link: Come impostare utenti virtuali in &#8220;vsftpd&#8221; su Debian'>Come impostare utenti virtuali in &#8220;vsftpd&#8221; su Debian</a></li>
<li><a href='http://www.bittrack.it/archives/oven-trick-riparare-la-scheda-video-mettendola-in-forno/' rel='bookmark' title='Permanent Link: Oven Trick, riparare la scheda video mettendola in forno'>Oven Trick, riparare la scheda video mettendola in forno</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/assegnare-un-indirizzo-ip-statico-alla-scheda-di-rete-su-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come impostare utenti virtuali in &#8220;vsftpd&#8221; su Debian</title>
		<link>http://www.bittrack.it/archives/come-impostare-utenti-virtuali-in-vsftpd-su-debian/</link>
		<comments>http://www.bittrack.it/archives/come-impostare-utenti-virtuali-in-vsftpd-su-debian/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 18:46:00 +0000</pubDate>
		<dc:creator>Don Limo</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[utenti virtuali]]></category>
		<category><![CDATA[vsftpd]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=353</guid>
		<description><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/09/ftp.png" class="attachment-post-thumbnail wp-post-image" alt="ftp" title="ftp" /></div>Il motivo per il quale vengono impostati utenti virtuali in un server FTP, è generalmente per consentire l&#8217;accesso ftp al web server e di conseguenza ai diversi siti web che mantiene online. Ogni utente può avere uno o più login di accesso all&#8217;ftp, e nome utente e password possono essere condivisi con il web server. [...]]]></description>
			<content:encoded><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/09/ftp.png" class="attachment-post-thumbnail wp-post-image" alt="ftp" title="ftp" /></div><p>Il motivo per il quale vengono impostati utenti virtuali in un server FTP, è generalmente per consentire l&#8217;accesso ftp al web server e di conseguenza ai diversi siti web che mantiene online. Ogni utente può avere uno o più login di accesso all&#8217;ftp, e nome utente e password possono essere condivisi con il web server.<span id="more-353"></span></p>
<h2>Installazione</h2>
<p>Come si può ben capire dal titolo, prenderemo in esame vsftpd come server FTP e <a href="http://www.apache.org/" target="_blank">apache</a> come web server. Entrambi li ho scelti per il loro rinomato livello di sicurezza, leggerezza e stabilità e per quanto concerne la loro installazione vi rimando alle rispettive guide: <a href="http://www.bittrack.it/archives/ftp-server-sicuro-con-vsftpd" target="_blank">vstfpd</a> e apache (appena ho due minuti per scriverla). Adesso, andremo ad installare il modulo <em>pam_pwdfile</em> che permette una semplice e rapida condivisione delle credenziali di autenticazione fra l&#8217;ftp ed il web server.</p>
<p><code># apt-get install libpam-pwdfile</code></p>
<h2>Configurazione</h2>
<p>Lo scopo principale di impostare utenti virtuali, è il fatto di fornire accesso ftp ai vari siti web hostati da apache che di standard si trovano in <em>/var/www/</em>, prevenendo accessi anonimi o accessi ad altri siti da parte di utenti non autorizzati. A questo punto, tutto quello che dobbiamo fare è creare un file dove andremo a salvare tutte le password degli utenti. Utilizzeremo lo strumento <em>htpasswd</em> fornito da apache. C&#8217;è da dire però, che quest&#8217;ultimo supporta unicamente password fino ad 8 caratteri. Di conseguenza, se volete usare password più lunghe, potete usare tranquillamente un altro <a href="http://www.kernel.org/pub/linux/libs/pam/modules.html" target="_blank">modulo PAM</a> o fare ricorso a <em>md5-crypt</em>.</p>
<p><code># htpasswd -c /etc/vsftpd/passwd user</code><br />
Per gli utenti successivi è sufficiente eseguire lo stesso comando senza l&#8217;opzione &#8220;-c&#8221;.</p>
<p><code># htpasswd /etc/vsftpd/passwd user2</code><br />
Affinché gli utenti riescano a loggarsi ed uppare/modificare/cancellare file correttamente è necessario creare la loro home directory e dargli i permessi di scrittura.</p>
<p><code># mkdir /var/www/user<br />
# chown user1 /var/www/user<br />
# chmod +w /var/www/user</code></p>
<p>Ovviamente l&#8217;operazione va ripetuta per tutti gli utenti creati:</p>
<p><code># mkdir /var/www/user2<br />
# chown user1 /var/www/user2<br />
# chmod +w /var/www/user2</code></p>
<p>Adesso, <u>se non sono già presenti</u>, è necessario aggiungere delle opzioni al file di configurazione di vsftpd che si trova in <em>/etc/vsftpd.conf</em>:</p>
<p><code>anonymous_enable=NO<br />
local_enable=YES<br />
virtual_use_local_privs=YES<br />
secure_chroot_dir=/var/run/vsftpd<br />
pam_service_name=vsftpd<br />
guest_enable=YES<br />
user_sub_token=$USER<br />
local_root=/var/www/$USER<br />
chroot_local_user=YES<br />
hide_ids=YES</code><br />
Ora è il momento di passare a configurare il PAM per usare il file delle password che abbiamo creato.</p>
<p><code># nano /etc/pam.d/vsftpd</code><br />
Aggiungiamo le seguenti righe.</p>
<p><code>auth required pam_pwdfile.so pwdfile /var/www/conf/users<br />
account required pam_permit.so</code></p>
<p>Riavviamo il serizio di vsftpd.</p>
<p><code># /etc/init.d/vsftpd restart</code></p>
<h2>Testiamone il funzionamento</h2>
<p>La configurazione è finita, possiamo passare a testare il funzionamento effettivo degli utenti virtuali.</p>
<pre><code>$ ftp 192.168.1.200
Connected to 192.168.1.200.
220-Welcome to Pandora's Chest.
220-All activities are logged.
220-Good work.
Name (192.168.1.200:donlimo): user
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    3 ftp    ftp    4096 Jul 11 19:46    images
-rw-r--r--    1 ftp    ftp    5952 Jul 07 20:26    index.php
226 Directory send OK.
</code></pre>


<p>Articoli correlati:<ol><li><a href='http://www.bittrack.it/archives/ftp-server-sicuro-con-vsftpd/' rel='bookmark' title='Permanent Link: FTP Server sicuro con &#8220;vsftpd&#8221;'>FTP Server sicuro con &#8220;vsftpd&#8221;</a></li>
<li><a href='http://www.bittrack.it/archives/configurare-vsftpd-per-le-connessioni-sicure/' rel='bookmark' title='Permanent Link: Configurare vsftpd per le connessioni sicure'>Configurare vsftpd per le connessioni sicure</a></li>
<li><a href='http://www.bittrack.it/archives/assegnare-un-indirizzo-ip-statico-alla-scheda-di-rete-su-debian/' rel='bookmark' title='Permanent Link: Assegnare un indirizzo IP statico alla scheda di rete su Debian'>Assegnare un indirizzo IP statico alla scheda di rete su Debian</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/come-impostare-utenti-virtuali-in-vsftpd-su-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rimuovere i link al Music Store in iTunes 9</title>
		<link>http://www.bittrack.it/archives/rimuovere-i-link-al-music-store-in-itunes-9/</link>
		<comments>http://www.bittrack.it/archives/rimuovere-i-link-al-music-store-in-itunes-9/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:17:12 +0000</pubDate>
		<dc:creator>Raspo</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[iTunes]]></category>

		<guid isPermaLink="false">http://www.bittrack.it/?p=228</guid>
		<description><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/09/rimuovere-i-link-a-music-store.png" class="attachment-post-thumbnail wp-post-image" alt="rimuovere-i-link-a-music-store" title="rimuovere-i-link-a-music-store" /></div>Quei link all’iTiunes Store che appaiono accanto ai nomi delle playlist, ai titoli delle canzoni, autori e album, sono veramente fastidiosi. Ma al contrario delle vecchie versioni di iTunes dove era possibile disattivarli attraverso il menu preferenze, dalla 8, per far ciò, dobbiamo eseguire alcune operazioni un po’ più complicate. Nota: Questo procedimento è valido [...]]]></description>
			<content:encoded><![CDATA[<div><img src="http://www.bittrack.it/wp-content/uploads/2009/09/rimuovere-i-link-a-music-store.png" class="attachment-post-thumbnail wp-post-image" alt="rimuovere-i-link-a-music-store" title="rimuovere-i-link-a-music-store" /></div><p>Quei link all’iTiunes Store che appaiono accanto ai nomi delle playlist, ai titoli delle canzoni, autori e album, sono veramente fastidiosi. Ma al contrario delle vecchie versioni di iTunes dove era possibile disattivarli attraverso il menu preferenze, dalla 8, per far ciò, dobbiamo eseguire alcune operazioni un po’ più complicate.<span id="more-228"></span></p>
<p><strong>Nota:</strong> Questo procedimento è valido sia per iTunes 8 che iTunes 9.</p>
<h2>Procedimento su Windows</h2>
<p>Assicuriamoci di aver chiuso iTunes e poi spostiamoci nella cartella nascosta <em>AppData\ Apple Computer\iTunes</em>. Ci sono vari modi per farlo ed il percorso varia a seconda della versione di windows che stiamo utilizzando, perciò vi indicherò un metodo non troppo immediato, ma che vale sia su XP sia su Vista e Seven.</p>
<p>Aprite “Esegui” (tasto Windows + R) e digitate:</p>
<p><code>%appdata%\Apple Computer\iTunes</code></p>
<p>Premete OK e nella nuova finestra create una copia da usare come backup del file iTunesPrefs.xml</p>
<p>A questo punto aprite il file con WordPad (click destro-&gt;apri con-&gt;WordPad) e cercate il punto con la scritta:</p>
<p><code>&lt;key&gt;User Preferences&lt;/key&gt;<br />
&lt;dict&gt;</code><br />
Spostatevi subito sotto queste due linee e aggiungete:</p>
<p><code>&lt;key&gt;show-store-arrow-links&lt;/key&gt;<br />
&lt;data&gt;<br />
AA==<br />
&lt;/data&gt;</code></p>
<p style="text-align: center;"><a href="http://www.bittrack.it/wp-content/uploads/2009/09/iTunesPrefs.png"><img class="size-medium wp-image-233 aligncenter" title="iTunesPrefs" src="http://www.bittrack.it/wp-content/uploads/2009/09/iTunesPrefs-600x343.png" alt="iTunesPrefs" width="600" height="343" /></a></p>
<p>Salvate e chiudete il file. Ora potete tornare ad iTunes e noterete che tutti i link saranno scomparsi!</p>
<h2 style="font-size: 1.5em;">Procedimento su Mac</h2>
<p>Per gli utenti Mac OS il processo è molto più semplice.</p>
<p>Aprite il Terminale e digitate:</p>
<p><code>defaults write com.apple.iTunes show-store-arrow-links -bool FALSE</code></p>
<p>Fine <img src='http://www.bittrack.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>


<p>Articoli correlati:<ol><li><a href='http://www.bittrack.it/archives/rimuovere-la-pubblicita-su-qualsiasi-browser-con-privoxy/' rel='bookmark' title='Permanent Link: Rimuovere la pubblicità su qualsiasi browser con Privoxy'>Rimuovere la pubblicità su qualsiasi browser con Privoxy</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bittrack.it/archives/rimuovere-i-link-al-music-store-in-itunes-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
