Visualizzazione post con etichetta javascript. Mostra tutti i post
Visualizzazione post con etichetta javascript. Mostra tutti i post

martedì 13 maggio 2008

[Link] Raccolta di cheet sheet

Qui di seguito una raccolta di "bigini" online :)

Raccoglitori di cheet sheet e altro materiale

Ecco una lista di ottimi siti web che raccolgono liste di memorandum in formato PDF in merito a svariati argomenti:

venerdì 2 maggio 2008

"Where is bug": hacking and learning game

Segnalo un'iniziativa lanciata da NeCoSi:

NeCoSi di Geekplace.org, collaboratore di Oilproject.org e Shannon.it, ha sviluppato un giochino per mettere alla prova le vostre capacità “non convenzionali”.
Le prove da superare sono abbastanza varie, ed il tempo vola. Attenti a non trascorrere notti insonni…
Vi segnaliamo quindi molto volentieri Where is Bug e, già che ci siamo, vi proponiamo anche la presentazione/spot scritta dagli stessi autori del gioco:
Una gara contro voi stessi… una sfida contro il tempo… Chi arrivera’ primo? Chi riuscira’ a sopravvivere fino alla fine? Prepara lo snffer, il tuo editor preferito e carica i plugin che pensi possano servirti sul browser.
Ci saranno livelli di semplice reverse engineering, di steganografia, di sql-injection, di semplice spoofing, ed altro ancora.
Wib, il gioco che ti insegna a pensare come un hacker. Non fare il lamer, sfoga qui la tua voglia di bucare!
Una piattaforma per testare le proprie abilità. Non ci sono enigmi, solo bug da individuare e sfruttare.

Grazie per l'attenzione.

Buon gioco ;)

sabato 29 marzo 2008

[javascript] Mostrare/Nascondere del testo

Nel breve tempo libero rimasto in questo finesettimana, ho deciso che le aree di appunti riguardanti Windows e Linux andavano risistemate.

Problema

Allo stato attuale, queste due aree vengono gestite come delle FAQ, in cui al click sul collegamento interno di una domanda si viene redirettati nella zona in cui risiede la risposta.

Ma con il tempo la pagina diventa caotica e l'ordine è presieduto solo dai collegamenti alle risposte, mentre il contenuto viene sbattutto nella pagina un poco alla volta.

Soluzione

La soluzione sta nel mostrare il testo di risposta ad una domanda immediatamente al di sotto della domanda stessa, permettendo di farlo apparire e di nasconderlo nuovamente al click del collegamento sulla domanda stessa.

Il codice:

 /* credits: http://www.webmasterworld.com/forum91/441.htm
* Mostra o nasconde una porzione di testo contenuta in tag DIV al click di un collegamento
* ipertestuale.
* E' sufficiente porre:

<div id="script" style="display: none">
....content...
<p><a onclick="showhide('script'); return(false);" href="#">Testo da cliccare</a></p>
*/
function showhide(id){
if (document.getElementById){
obj = document.getElementById(id);
if (obj.style.display == "none"){
obj.style.display = "";
} else {
obj.style.display = "none";
}
}
}

Come si può vedere il codice della risposta va messo all'interno di tag <div>, specificando come stile display: none per mantenerle nascoste fintanto che non si clicca sul collegamento della domanda.

Il collegamento della domanda specifica la funzione da attivare al click del mouse sul collegamento (trovate i dettagli e la fonte nei commenti nel codice qui sopra).

Per vedere in azione il codice, ecco una demo. Testato con successo sulle ultime versioni di Firefox, Opera e Internet Explorer in Windows.

giovedì 17 gennaio 2008

[Javascript]Aggiungere ai favoriti una pagina

Ho cercato in lungo e in largo uno script cross browser per aggiungere una pagina tra i favoriti,ma la panacea di tutti mali non c'è. O almeno io non l'ho trovata.

Così notando che la finestrella dei segnalibri in Firefox e Opera si apre cliccando semplicemente su un link che abbia un attributo "rel" di valore "sidebar",ho reso ultrasemplice lo script che andrò a presentare.

EDIT: ho poi scoperto che un link siffatto in Firefox apre la pagina nella sidebar come intuitivamente si poteva pensare (questa discussione sembra indicare che addirittura non ci sia una funzione adeguata) ,per IE nessun problema mentre Opera mette un flag sull'apertura della pagina nella sidebar,che si può facilmente togliere.

Le fonti a cui mi sono ispirato (le migliori che sia riuscito a trovare) sono:

Lo script

Mettere un riferimento allo script sottostante nell'header della pagina:

// scegli tu titolo e URL
function bookmarksite(title,url){
if (window.sidebar) { // firefox
window.sidebar.addPanel(title, url, "");
} else if(document.all){ // ie
window.external.AddFavorite(url, title);
}
}

// usa quelli presenti
function bookmarksite(){
var title = document.title;
// Blogger - Replace with <$BlogItemTitle$>
// MovableType - Replace with <$MTEntryTitle$>

var url = document.URL;
// Blogger - Replace with <$BlogItemPermalinkURL$>
// MovableType - Replace with <$MTEntryPermalink$>
// WordPress - <?php bloginfo('url'); ?>
if (window.sidebar) {// firefox
window.sidebar.addPanel(title, url, "");
} else if(document.all) {// ie
window.external.AddFavorite(url, title);
}
}


Creare poi un link del genere:



<a href="#" title="Metti tra i preferiti questa pagina!" onclick="if(document.all) bookmarksite();" rel="sidebar">

In pratica richiamiamo la funzione bookmarksite solo se si tratta di Internet Explorer. Notare che ad ogni modo,la funzione bookmarksite() può funzionare anche per Firefox. Una DEMO qui.

A mio avviso è il metodo più semplice per ottenere ciò che vogliamo ottenendo compatibilità con i 3 maggiori browser (IE - Firefox - Opera). non ho potuto sperimentarlo su Safari (dove immagino non andrà). Se qualcuno volesse farmi sapere una funzione per adattarlo al Mac ne sarei felice :) Lasciate pure un commento qui sotto o scrivetemi una mail!

domenica 18 novembre 2007

Script offuscati

In merito all'articolo di Mister6339 su Delfinsblog,volevo suggerire un tool online per fare l'unescape automatico di quegli script poco limpidi che capita di vedere per il Web,come questo presente in certi siti.
Basta recarsi su Text Unescape Utility,incollare il solo testo per cui si necessita l'unescape e cliccare su Unescape. Apparirà qualcosa di interessante:


a = 'abcdef';
b = '06acd3e61cd8465ce2';
c = '3c7363726970743e747061747a7a203d204d6174682e616273284d6174682e73696e284d6174682e636f73284d6174682e50492929293b3c2f7363726970743e0a';
h = f1(c);
d = d.toString().substring(2,15);
e = new Array();

for (i = 0; i<13; i++) {
e[i] = d.charAt(i);
}

f = 'è[&%.;]({{?!!èéòç°#ì[§]~`ù';
f = f2(f);
g = 'e23e528fb8df1cef618cb5e11c3a62868fe9143b7493cd74736df92c426facbed1e54a85a5d5cfed12315a95aa296075b8cffa366541a0d9081d5e8862a0b3ec294a8376c9f9648ebad6173c2c96c9d913456e5bc2f7103f68939091e4fd738ec1ee214c4a31';
g = f3(g);

function f4(var) {
yln32s = 0;
for(i = 0; i < 6; i++) {
qhlpq2z = a.substring(i, i+1);
if (var == (i + 10)) {
yln32s = qhlpq2z;
}
}
if (yln32s < 10) {
yln32s = "" + var;
}
return yln32s;
}

function f3(var) {
yln32s = 0;
for(i = 0; i < 6; i++) {
qhlpq2z = a.substring(i, i+1);
if (var == qhlpq2z) {
yln32s = 10 + i;
}
}
if (yln32s < 10) {
yln32s = eval(var);
}
return yln32s;
}

function f3(yln32s) {
temp2 = -1;
temp = 144693;
for (pj75fw = 0; pj75fw < yln32s.length; pj75fw = pj75fw + 2) {
temp2++;
if (temp2 > 12) {temp2 = 0;}
temp = temp + 43;
if (temp > 145716) {temp = 0;}
kjhluyu = (temp % (eval(e[temp2]) + 1));
kjhluyu = kjhluyu + (temp % 255);
z299zip = yln32s.substring(pj75fw, pj75fw + 2);
z299zip = f4(z299zip, temp2, kjhluyu);
z299zip = '%' + z299zip;
document.write(unescape(z299zip));

}
return 0;
}

function f4(var, ddb, ddc) {
var = var.toLowerCase();
var = f3(var.substring(0, 1)) * 16 + f3(var.substring(1, 2));
var = var - e[ddb] - ddc;
if (var < 0) {var = 255 + var;}
var = f4(Math.floor(var / 16)) + f4(var % 16);
return var;
}

function f2(m5dawy) {
m5dawy = escape(m5dawy);
return m5dawy;
}

function f1(b) {
for(i = 0; i < b.length; i = i + 2) {
tem = b.substring(i, i + 2);
tem = '%' + tem;
document.write(unescape(tem));
}
return 'eval("jrqb9yyz = escape(f)")';
}
Ma questo non basta a sapere cosa faccia questo script: di fatto la serie di funzioni richiamate all'interno di questo codice su alcune lunghe stringhe (ma non casuali) al suo inizio,effettuano ulteriori unescape che ora non ho il tempo di verificare.
Sembra evidente che ci sia dietro qualcosa di non proprio cristallino :-D

martedì 13 novembre 2007

(X)HTML valido: attenti agli scripts javascript

Nel caso ci teniate a rendere valido il vostro codice (X)HTML,fate attenzione agli scripts javascript nelle pagine: senza le opportune cautele,le "&" ( e commerciali) verranno mal interpretate,cioè come l'inizio di entità. Per evitare errori,basta includere il codice degli script in blocchi CDATA come nell'esempio qui sotto:



lunedì 22 ottobre 2007

Un po' di links

In questi giorni sono a Pisa quindi ,informaticamente parlando,non ho combinato molto,da qui la penuria di post :)
Ad ogni modo mi è capitato di scartabellare un po' i miei feed e dopo aver realizzato che tante volte sono più le notizie che cancello di quelle che realmente mi interessano,ho deciso di postare un po' di links che mi interessano e di rimuovere qualcuno dal blogroll. Uno di questi per es. è Napolux,poichè i tempi di attesa per post tecnici sono finiti. La rimozione del feed avverrà tra un mese esatto se non ci saranno post interessanti.

Links:

sabato 13 ottobre 2007

script.aculo.us 1.8

Ultimamente mi sto dedicando proprio a qusta libreria divertendomi con i suoi vari effetti grafici gradevoli. Il blog di Thomas Fuchs,autore della libreria,annuncia la nuova versione di scriptaculous con le seguenti features:

  • Prototype 1.6 (lastest trunk version)
  • Complete rewrite of Ajax.InPlaceEditor and Ajax.InPlaceCollectionEditor
  • Full CSS inheritance in Effect.Morph
  • New core effect: Effect.Tween
  • Sound: play mp3 files for sound effects; uses native playback on IE and available plugins whereever possible
  • Performance improvements
  • Tons of bugfixes
Insomma ha corretto errori,introdotto nuovi effetti,capacità di eseguire effetti sonori. Bene bene :)

sabato 6 ottobre 2007

Il wiki di Scriptaculous in PDF

m3nt0r ha trasformato il wiki di Scriptaculous in PDF e CHM. Pian piano tra libri e quant'altro sto costruendo anch'io la mia libreria di esempi.

Prototype e Scriptaculous

Prototype and Scriptaculous bookPrototype fonisce un set di estensioni a javascript e all'ambiente del browser mentre Scriptaculous è costruito sopra Prototype per creare widgets e altri piacevoli effetti.
Prototype & Scriptaculous in Action è un libro che introduce le due librerie: le prime 70 pagine le passa illustrando come Prototype semplifichi il lavoro dell osviluppatore mostrandone alcune classi.
La seconda parte la passa illustrando cosa sia possibile fare combinado le due librerie per ottenere effetti piacevoli. Il resto approfondisce.
Il costo del libro si aggira sui 30$ ma si trova anche su Emule ;) (lo comunico per pura informazione).

mercoledì 5 settembre 2007

Web 2.0 API Dashboard

Programmazione.it ci fornisce il link di ProgrammableWeb che riporta taggando con cura più di 500 API dei servizi Web 2.0 più famosi. E' possibile iscriversi al feed per essere aggiornati sulla lista.

Ancora sulla geolocalizzazione

E' sufficiente aggiungere questo codice per calcolare la regione e la città da cui proviene la nostra connessione,o per lo meno dove è dislocato il tuo pop fisico di accesso (per non far arrabbiare blogger scrivo al posto di script).


Regione:
src="http://map.geoup.com/geoup?template=RegionName">


Città:
src="http://map.geoup.com/geoup?template=CityName">

domenica 2 settembre 2007

Codice per svelare le password sotto gli asterischi

Leggo da Levysoft,oltre a cose note,di un codice javascript segnalato da uno dei suoi lettori per svelare la password in un form. Vediamo il codice:


javascript:(
function(){
var s,F,j,f,i;
s = '';
F = document.forms;
// scorre i form e memorizza in s la password
for(j=0; j<F.length; ++j) {
f = F[j];
for (i=0; i<f.length; ++i) {
if (f[i].type.toLowerCase() == 'password')
s += f[i].value + '\n';
}
}
if (s)
alert('Passwords in forms on this page:\n\n' + s);
else alert('There are no passwords in forms on this page.');
}
)();

Non dovete far altro che memorizzare questo link nei segnalibri per averlo a portata di mano. Funziona con IE7 e Firefox 2.0.0.6 (con questi l'ho provato).