Ciao,
dovresti rivedere quello che hai scritto e gli errori riguardo agli esempi postati.
setAttribute() ti permette di impostare un evento su un tag o altri elementi html
removeAttribute() fa il contrario
Sono tutti e due elementi statici, se: come hai scritto imposti un removeAttribute() su un tag href è impossibile che ti esegua l'href (andare al link inserito nel tag <a href="pippo.html"), visto che è stato chiesto di rimuoverlo.
Codice:
function togliHref(){
document.getElementById('link').removeAttribute("href");}
link per richiamare la funzione
<a id="link" href="MiaPagina.html" onclick="togliHref">Clickami per non farmi essere più un link</a>
Funziona perché è sbagliato il gestore di eventi onclick
No onclick="togliHref"
Ma
onclick="togliHref
()"
Bene non usare parole chiave come
link in javascript.
Codice:
<script type="text/javascript">
function verificaLink() {
var valore= letturaCookie('nomeCookie');
if (valore = 'valorePredefinito'){
document.getElementById('link').removeAttribute("href");
}
</script>
Errori:
manca una graffa
} di chiusura
impostato un'operatore di assegnazione
= invece che uno di controllo nella if
==
Posto due esempi con set e remove
Codice:
<script type="text/javascript">
function impostaHref(){
document.getElementById('linke').setAttribute('href', 'pippo.html');
}
</script>
Codice:
<a id="linke" href="" target="_blank" onclick="impostaHref()">Clickami sono un link</a>
Codice:
<script type="text/javascript">
function togliHref(){
document.getElementById('linke1').removeAttribute('href', 'pippo.html');
}
</script>
Codice:
<a id="linke1" href="pippo.html" target="_blank" onclick="togliHref()">Clickami per non farmi essere più un link</a>
Un esempio per il cookie
Codice:
<style type="text/css">
#mio_div{
display:none;
}
</style>
<script type="text/javascript">
window.onload=function(){
if (document.cookie.indexOf("valeria=true") === -1) {
document.getElementById("mio_div").style.display = "block";
document.cookie = "valeria=true; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/";
}
}
</script>
<div align="center" id='mio_div'>‹(•¿•)›-- VALE DUE VALE2 VALE --‹(•¿•)›</div>
La scritta nel div si vedrà solo la prima volta che si accede alla pagina.
Valeria.
Ciao Valeria. Innanzitutto ti ringrazio per le segnalazioni. Voglio precisare che il codice l'ho scritto molto velocemente.. Quindi penso fosse deducibile che errori come quello delle parentesi nel gestore degli eventi onclick oppure l'aver saltato una parentesi graffa fossero solo errori di distrazione o comunque di battitura.
Poi non a caso l'esempio che ho postato:
Codice:
<a id="link" href="MiaPagina.html" onclick="togliHref">Clickami per non farmi essere più un link</a>
aveva semplicemente lo scopo di mostrare come funzionasse la funzione (infatti guarda la scritta con cui si presenta il link

). In effetti però, adesso che la guardo, mi rendo conto che, per lo scopo per cui l'ho postato, nell' href al posto di
MiaPagina.html dovevo metterci un semplice
#. 0

Vabbè... scuse ufficiali N°1.
E comunque per quanto riguarda il removeAttribute, so che rimuove l'
href e non a caso l'ho fatto
dopo che il link fosse utilizzato.
Cioè ricapitolando in steps tutto quanto:
1) C'è un link con id='link' (e su questo è vero... in effetti è meglio non chiamarlo con "link" ma sinceramente, mancando di fantasia, è stato il primo nome che mi è venuto in mente.. e comunque il suo scopo era semplicemente di evidenziare la relazione tra il valore di
id nel tag <a> e quello del getElementById nella funzione js);
2) Ci clicco sopra e vengo reindirizzato alla pagina-target;
3) La pagina-target, tra le altre cose, ha un link che mi reindirizza alla pagina mittente (per capirci, quella con il link con id='link'

)
4) Una volta che ci clicco sopra scrivo il cookie con i suoi vari connotati servendomi di una funzione js e vengo reindirizzato alla pagina mittente;
5) A questo punto il link che ho utilizzato all'inizio non mi serve più ed il mio scopo è oscurarlo: pertanto metto un evento onload nel body ed in esso una funzione che mi legge il cookie creato in precedenza. Se il suo valore è uguale ad uno prefissato (o semplicemente si può mettere nell'if la condizione di esistenza del cookie), allora in tal caso procedo con la funzione eliminando l'href del link con id='link' (il quale, mi ripeto, che non mi serve più).
Penso che il ragionamento quadri.. e malgrado gli errori di sopra (per cui ci tengo nuovamente a scusarmi, ma ribadisco che sono stati dovuti dalla fretta di scrivere) il fatterello funziona perchè l'ho provato. E' chiaro che non mettevo il mio codice in specifico ma ho cercato di sviluppare uno schema su cui chiunque può adattarsi se si trovasse nel mio stesso problema.
Questo è quanto. Buona serata.