Newsgroup: it.comp.lang.javascript
Titolo: [?] onclick e return false

Immagino sarà una stupidata che non vedo, ma mi sta tirando scemo ...
Codice:
<div style="width:100%;text-align:center">
<a href="
http://www.facebook.com/home.php?sk=group_155914151142347
" 
onclick="window.open(this.href);return false"><img src="http://
www.biella5stelle.it/forum/download/file.php?id=67
" alt="MoVimento 5 
Stelle Cavaglià"/></a></div>
Semplice e funzionante: onclick sull'immagine niente e propaga, onclick 
su href apre il link in un'altra pagina o scheda, e return false così non 
cambia pagina. Perfetto (e, ripeto, funzionante).
Inserisco nel sito 
http://www.biella5stelle.it/
Niente ... o meglio, funziona tutto ma scatena anche l'href (ossia: apre 
popup, ma cambia anche link). Vedi p.e. colonna a sinistra sezione "Link" 
prima voce (M5S Cavaglià), quella su cui sto testando questo 
comportamento.
Qualcuno riesce a capire il perché? Non sono granchè esperto di Drupal, 
ma non vedo script che possano fare questa cosa (analizzato anche gli 
Event listenerers con google chrome).
Sarà sicuramente una stupidata, ma non la vedo ...
p.s. se possibile vorrei evitare di "smanettare" troppo con javascript, 
perché poi sono altre le persone che scrivono queste parti della pagina, 
che non sanno nulla di html-css-javascript ...
p.p.s. non è pubblicità (e comunque dovevo per forza linkare il sito), 
perché é una cosa che sto facendo rigorosamente *NON* a scopo di lucro :-)
grazie a tutti in anticipo.
Cristiano

Il Fri, 23 Sep 2011 09:27:54 +0000, Cristiano Larghi ha scritto:
Dimenticavo: testato con firefox 6.0.2 e chrome, entrambi su Ubuntu (lo 
dico perché ho rilevato già diverse differenze tra questi due browser 
usati in ambiente linux o in ambiente windows).

 Cristiano
 
Facci sapere.

 Drupal.
 
E' quello che ho fatto, azz, ma non lo ho trovato!
 
Domani dovrei riuscire a vedere cosa fa body e document.

 E' quello che ho fatto, azz, ma non lo ho trovato!
 
Non so quanto sei coinvolto nella gestione del sito, ma IMVHO la cosa
più semplice è fermare la propagazione. Ci sono troppi file JS di terze
parti, più roba compressa varia, probabilmente da drupal, ci sono
logiche dietro che non sono chiare per niente... Insomma, un macello da
gestire. Il fatto che ogni link venga praticamente eseguito due volte è,
a parer mio, un errore bello e buono, ma non conoscendo tutto il
meccanismo dietro non so neanche cosa potrebbe accadere "fixando" questo
comportamento.
 
Personalmente credo che la mole di JS in gioco in quel sito sia
spropositata rispetto allo scopo del sito stesso, e questo rende anche
più difficile la manutenzione.

 problema, visto il tipo di codice.
 
Questo js non lo ho trovato (per ora, mò mi metto a smanettare!)

 Questo js non lo ho trovato (per ora, mò mi metto a smanettare!)
È un file probabilmente autogenerato, quindi è possibile che il nome
cambi. Se, tramite chrome o firebug metti in "pausa" il codice JS,
vedrai che ti si ferma alla linea 11 (o quel che sarà) di un qualche
file: c'è un timer che viene eseguito costantemente. La linea in
questione contiene anche un codice sospetto che si riferisce alla
`window.location` e l'associa direttamente su eventi click con l'href di
un qualche elemento.

 che ti succede.
facebook ... lo ho tolto dalla colonna di destra ma il problema resta :-/

 facebook ... lo ho tolto dalla colonna di destra ma il problema resta :-/
 
L'hai tolto dalla versione online? Perché se io metto in pausa lo script
engine, lui mi si ferma sempre al codice, c'è sempre un timer.
Tra l'altro in webkit puoi impostare il breakpoint direttamente sugli
"eventi" di tipologia "timer" (Event Listener Breakpoints).

 "eventi" di tipologia "timer" (Event Listener Breakpoints).
 
Sì, lavoro sulla versione online. C'è un timer per far girare le immagini 
nel primo riquadro in alto, non centra sicuramente ma lo tolgo per 
sicurezza.

 sicurezza.
 
Non credo sia quello, il timer a cui mi riferisco io gira praticamente
sempre. La linea a cui mi riferisco io è la seguente:
 
 
http://pastebin.mozilla.org/1336328
 
 
E la parte sospetta è:
 
 
if(c.tagName.toLowerCase()=='a'){if(false!==e()&&c.href)window.location.href=c.href;}else
if(c.click)c.click();});break;}
 
Spero che questo ti aiuti!

 Spero che questo ti aiuti!
 
Visto! Era facebook, ma i plugin sociali. Rimossi, niente da fare :-/
 
Ora si blocca in jquery.min.js, nella function per il "sizzle css-
selector engine" ... ma perché diavolo viene invocata???? 'sto Drupal ...

Il Mon, 26 Sep 2011 19:06:42 +0000, Cristiano Larghi ha scritto:
 
Risolto.
 
il problema era google analytics: era stato caricato il modulo per 
registrare le statistiche google bacato :-/
 
Poi era stato corretto dagli sviluppatori, ma c'era ancora la versione 
vecchia che creava questo problema. Sostituito il modulo, ora è tutto ok.
 
Ma pensa te ...
 
Grazie!

 selector engine" ... ma perché diavolo viene invocata???? 'sto Drupal ...
 
Sizzle viene invocato praticamente sempre in jquery, dato che è quello
che fa il parsing della stringa di selezione elementi (vedasi "a[href]"
di qualche post fa). Magari lì sta appunto aggiungendo un qualche handler.

 Grazie!
 
De nada, felice tu abbia risolto, alla fine. :)

 Era bacato forte!
 
http://drupal.org/node/1108404
 
 
una cosa da niente :-/