javascript

Javascript: normalizzazione stringhe con caratteri testuali non-ASCII

javascript

Al giorno d'oggi nei testi online capita a volte di trovare delle frasi scritte con dei caratteri non standard, che assomigliano alle normali lettere dell'alfabeto ma magari con degli "effetti" sopra (sono già in bold, o italico...). Sono caratteri UTF-8 estesi fuori dal set ASCII, e che a volte possono non essere ben digeriti da alcuni sistemi. Questo stesso blog (per questioni di codifica del db) non mi permette di inserirli. Per capire quali sono, metto un allegato con una frase scritta completamente con caratteri estesi.
Se avete la necessità di traslitterare la frase, in javascript, in modo da trasformare ogni carattere in quello standard mantenendo quindi la frase leggibile, potete usare il metodo dell'oggetto String .normalize("NFKC").

"stringa non standard".normalize("NFKC")

jDoubleSelect: Convertire una select box con OPTGROUP in una doppia select box

javascript

Avete una select box che usa degli OPTGROUP al suo interno (quindi delle opzioni innestate) e volete convertirla, in maniera trasparente tramite javascript, in una select box doppia? Le due select box saranno collegate: la prima permetterà di scegliere il primo livello, la seconda il secondo.

In rete non si trova praticamente nulla, ed è davver strano! Non mi pare una richiesta così astrusa... comunque, rovistando su google si trova questa libreria:

jDoubleSelect ( http://www.senamion.com/blog/jDoubleSelect.html )

La licenza è doppia: MIT e GPL.

Caricare una libreria javascript esterna senza bloccare il browser (lazy loading)

javascript

Se abbiamo bisogno di creare un "widget" javascript da inserire in una pagina di un sito esterno, o in generale se desideriamo essere sicuri al 100% che il caricamento di una libreria javascript non rallenti il loading della pagina (ma venga effettuato realmente DOPO il rendering completo della pagina), occorre usare delle tecniche di lazy loading. Con HTML5 è possibile specificare il tag "async" all'elemento <script>, ma non è ancora supportato da tutti i browser, e anche quando lo è ha lo spiacevole incoveniente di bloccare comunque l'esecuzione dell'evento "onload" della pagina.

Occorre quindi usare un pattern più elaborato. Dopo diverse prove il sistema che preferisco è questo:

Javascript: Rilevare il supporto touch del browser

javascript

Il metodo migliore per sapere se l'utente che sta navigando il nostro sito ha un dispositivo touch o meno è usare l'ottima libreria Modernizr (http://modernizr.com), che permette di rilevare parecchie feature di nuova generazione supportate dal browser.

Se ci interessa solo la rilevazione del touch e non vogliamo mettere tutta la libreria (nonostante sia molto piccola e può essere scaricata anche solo con le sezioni che interessano) potete usare il javascript sotto.

Comunque supportate Modernizr!

[javascript]

/* Based on http://modernizr.com */

Posizione del cursore con jquery

jquery

Problema: ottenere la posizione del cursore all'interno di un textfield (o di una textarea).

La soluzione sembra decisamente problematica a giudicare dalle innumerevoli proposte che si trovano in giro, ognuna con i suoi problemini su qualche versione di qualche browser (il problema principale comunque è sempre lo stesso: IE)

Non ho avuto molto tempo per provare la soluzione adottata su tutti i browser, diciamo che mi sono fidato dei commenti trovati.