Newsgroup: it.comp.lang.javascript
Titolo: link e <a href>

Scusate ma ho già postato un messaggio simile senza risultati....
il problema è questo....è possibile tramite il click su un link
disabilitare href????
Per intenderci il link iniziale 
<a href="#">...</a> 
dovrebbe diventare
...
Senza dover ricaricare la pagina
Ciao e grazie per l'aiuto
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 disabilitare href????
Scusa, ma perchè dovresti fare questo? :oO
Secondo me sbagli qualcosa a monte... un tag <A> senza HREF non ha senso...
se devi associare degli eventi ad un click puoi usare altro...


Puoi spiegare meglio???
Per quel che ho capito io non si puo' fare, non puoi far sparire un link dal
sorgente... :D
Napolux
http://ifsk.too.it
http://napolux.supereva.it

 wrote in message
news:askiv6$rd6$
1...@newsreader.mailgate.org

Il problema è che dopo aver cliccato su un link esso non deve essere
più cliccabile per evitare ulrerori chiamate al DB.....Farlo sparire è
semplice
però in questo modo mi scompare anche il link dentro gli attributi
<a></a>
A me servirebbe qualcosa che disabilita il link e mi lasci la
descrizione.


 descrizione.
Umh... non so se ho capito bene...
Perchč non metti nell'HREF un valore tipo "javacript:dummy=1"
...č una porcata, ma magari cosě cliccandoci non fa esattamente nulla...

cioč????????


Racchiuderlo in un div e aggiornare innerHMTL?
del tipo
<div id='contenitore'><a href='prova.htm' target='_new'
onClick='document.getElementById("contenitore").innerHTML=this.innerHTML'>pr
ova</a></div>

ok va....e se volessi disabilitare + link  a click di un solo link???
es :
Link a
Link b
Link c
Link d
al click di a devo disabilitare anche gli altri.
Grazie e scusate se vi rompo!!!


> al click di a devo disabilitare anche gli altri.
Bah... io rimango dell'idea che ci sia un errore di fondo... è un problema
troppo assurdo il tuo! ;o)))
Comunque puoi mettere tutti i link dentro un DIV oppure creare un DIV per
ogni link... è un pò una porcata... ma non vedo altre soluzioni...

Il problema č questo : 
ho una serie di link dinamici...ogni link fa un'interrogazione al bd.
Per evitare piů accessi ad esso devo disabilitare tutti i link al click
di un link. So che č assurdo ma non l'ho pensata io come cosa..... :-)
CMQ la soluzione di Cristiano Larghi funziona su un solo link...il 
problema adesso č disabilitare anche gli altri.


 problema adesso è disabilitare anche gli altri.
Scusa, fai una function che disabilita tutti i link, tipo:
function NoLink()
{
    document.getElementById("contenitore1").innerHTML=this.innerHTML
    document.getElementById("contenitore2").innerHTML=this.innerHTML
}
E poi la richiami in ogni link
<div id='contenitore1'><a href='prova.htm' target='_new'
onClick='NoLink();>prova</a></div>
<div id='contenitore2'><a href='prova.htm' target='_new'
onClick='NoLink();>prova</a></div>
Può andare?

fai una function generica che chiami onClick.
Nell'esempio si presuppone che, dato id dell'anchor, il div contenitore si
chiami contenitore_idanchor.
Non so inoltre per compatibilità come si comporti...
<HTML><HEAD>
<TITLE>esempio</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function no_click(what) {
 document.getElementById('contenitore_'+
what.id
).innerHTML=what.innerHTML;
 return false;
}
</SCRIPT>
</HEAD>
<BODY bgcolor="white" onload=''>
<div id='contenitore_link1'><a href='prova.htm' target='_new'
onClick='no_click(this)' id='link1'>prova</a></div>
<div id='contenitore_link2'><a href='prova.htm' target='_new'
onClick='no_click(this)' id='link2'>prova2</a></div>
<div id='contenitore_link3'><a href='prova.htm' target='_new'
onClick='no_click(this)' id='link3'>prova3</a></div>
</body></html>

 disabilitare href????
Visto che onclick viene scatenato prima dell' href,
puoi fare cosi':
<script>var gfC=-1</script>
<a href='javascript:;location=gfC?"#":"a.htm"' onclick='gfC++'>Solo un
click</a><br>
<a href='javascript:;location=gfC?"#":"b.htm"' onclick='gfC++'>Solo un
click</a><br>
In questo modo quando ne clicchi uno non ne clicchi piu',
altrimenti devi resettare, con qualche evento, la variabile (gfC) a (-1).
--
Ciao
  [web]   
www.gfcarlotti.it
   [mail]   
fra...@gfcarlotti.it
    [pgp]  
www.gfcarlotti.it/pgp/franco.asc

OK grazie a tutti...ho deciso di utilizzare la strada di Cristiano..
...ancora non funziona come dovrebbe ma già è qualcosa...
..Grazie di nuovo...
cmq se vi interessa (il codice è in jsp) :
<html>
<%
int numeroLink = 0;
%>
<form>
<div id='<%=numeroLink%>' <%numeroLink++;%>><a href='#'
onClick="disabLink()">prova</a></div>
<div id='<%=numeroLink%>' <%numeroLink++;%>><a href='#'
onClick="disabLink()">prova2</a></div>
<div id='<%=numeroLink%>' <%numeroLink++;%>><a href='#'
onClick="disabLink()">prova3</a></div>
</form>
<script>
// IL CODICE è MESSO ALLA FINE PER POTER CONTARE I LINK
var numLink=document.links.length;
	function disabLink(){
	for (var i = 0; i< numLink; i++){
		var ln = i
		document.getElementById(ln).innerHTML=document.links[0].innerHTML
	}
}
</script>
</html>


 ...ancora non funziona come dovrebbe ma già è qualcosa...
Si, ma e' assurdo che tu ti basi su uno script lato client per prevenire 
azioni sul server.
E se uno ha JavaScript disabilitato?
Quel che devi fare e' agire direttamente lato server.
Quando un utente si collega al server gli mandi una variabile di sessione 
(un cookie) che valorizzerai in un certo modo (che so: lo passi da 0 a 1) 
quando viene fatto l'accesso e poi _finche' dura la sessione_ non accetti 
piu' accessi da quell'utente. E magari gli lasci anche un cookie permanente 
per prevenire accessi futuri.
Pero' devi cautelarti anche dagli utenti che non hanno i cookies abilitati 
(e sono tantissimi), dunque puoi regolarti in due maniere:
- impedisci l'accesso al database agli utenti che non hanno i cookies 
abilitati (e forse e' la soluzione migliore);
- fai registrare gli utenti e nel database salvi anche un campo che userai 
da flag.
Certo nel secondo caso avrai il tuo da fare per intercettare registrazioni 
multiple dallo stesso utente.
Insomma: la i-esima Legge di Zero recita "The right tool for the right job" 
per delle azioni lato server lavora dal server.
Anche perche' se l'utente e' davvero motivato ad accedere al database 
potra' tranquillamente visualizzare il sorgente, copiare la URL del link e 
dargli invio infinite volte direttamente dalla location del browser...e ti 
ha fregato :-))
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

> E se uno ha JavaScript disabilitato?
L'applicazione è una Intranet...le macchine verranno settate tutte alla
stessa maniera, con javascript abilitato.
Il fatto di impedire più transazioni dovrei introdurlo perchè esistono
interrogazioni al db che recuperano i dati anche da 
tabelle di 640 colonne...
Dato che l'applicazione (jsp) interroga  programmi  COBOL-CICS 
una volta avviata la transazione io non ho più il controllo di 
quello che sta succedendo fin quando i dati non
tornano indietro...avviare quindi più transazioni così pesanti 
rallenterebbe notevolmente il tutto....
..lo so che non è bello disabilitare i link ma sai dirmi 
un'altra strada???
Ciao


L'applicazione è una Intranet...le macchine verranno settate tutte alla
stessa maniera, con javascript abilitato.
Il fatto di impedire più transazioni dovrei introdurlo perchè esistono
interrogazioni al db che recuperano i dati anche da 
tabelle di 640 colonne...
Dato che l'applicazione (jsp) interroga  programmi  COBOL-CICS 
una volta avviata la transazione io non ho più il controllo di 
quello che sta succedendo fin quando i dati non
tornano indietro...avviare quindi più transazioni così pesanti 
rallenterebbe notevolmente il tutto....
..lo so che non è bello disabilitare i link ma sai dirmi 
un'altra strada???
Ciao


, 
igord...@yahoo.it
 says...

No, sorry.
Continuo ad essere dell'idea che (intranet o meno) al problema devi far 
fronte all'origine: cioè direttamente dal server.
Magari crei il link in modo univoco, per esempio gli associ un parametro 
generato casualmente, ed una volta che l'utente ha cliccato gli ripresenti la 
pagina senza il link, in modo che non sia possibile rifare la chiamata 
neanche andando a spulciare nella chache o nella history perché il codice 
assegnato al link non funzionerà più.
Magari ancora una volta con un cookie visto che dovresti essere certo del 
fatto che puoi usarli.


 fatto che puoi usarli.
Non sono della stessa opinione...però sono gusti personali 
(e in molti casi vanno assecondati anche quelli del cliente)...
...nel senso che non mi sembra molto corretto ricaricare la pagina
per eliminarne solo i link...cmq ripeto sono solo gusti personali..
....Grazie di nuovo Riccardo.


 wrote in message
news:1be768f2402fc7dfd25...@mygate.mailgate.org


 Scusate ma ho già postato un messaggio simile senza risultati....
