2013-03-13 18 views
12

ho un link sulla mia paginaCome modificare l'attributo href utilizzando JavaScript dopo aver aperto il link in una nuova finestra?

<a href="http://google.com" id="mylink" onclick="changeLink();" target="_blank">google</a> 

E l'obiettivo è quello di seguire questo link (apertura in una nuova scheda) e cambiare i suoi attributi (sulla scheda precedente). Voglio dire, apriamo google.com in una nuova scheda e se guardiamo indietro sul link, è aggiornato.

Ho provato questo js codice

function changeLink(){ 
    document.getElementById("mylink").href = "http://facebook.com"; 
    document.getElementById("mylink").innerHTML = "facebook"; 
    } 

ma cambia anche il bersaglio di nuova scheda di apertura. Invece di aprire Google, si apre Facebook nel mio esempio.

È possibile risolvere il problema? Grazie in anticipo.

risposta

28

Il tuo onclick incendi prima che il href in modo che cambierà prima che la pagina viene aperta, è necessario effettuare la funzione di gestire l'apertura della finestra in questo modo:

function changeLink() { 
    var link = document.getElementById("mylink"); 

    window.open(
     link.href, 
     '_blank' 
    ); 

    link.innerHTML = "facebook";, 
    link.setAttribute('href', "http://facebook.com"); 

    return false; 
} 
+3

Grazie, funziona bene. Ho appena cancellato l'errore di stampa "," nel tuo esempio. –

4

È possibile ritardare il codice utilizzando setTimeout da eseguire dopo clic

function changeLink(){ 
    setTimeout(function() { 
     var link = document.getElementById("mylink"); 
     link.setAttribute('href', "http://facebook.com"); 
     document.getElementById("mylink").innerHTML = "facebook"; 
    }, 100); 
} 
+0

Grazie, è anche una buona variante per me. –

2

Sostituire

onclick="changeLink();" 

da

onclick="changeLink(); return false;" 

per annullare la sua azione predefinita

0

È possibile modificare questo nella pagina load.

La mia intenzione è che quando la pagina viene alla funzione load, commutare i collegamenti (link corrente in quella richiesta)

0

ad esempio provare questo:

<a href="http://www.google.com" id="myLink1">open link 1</a><br/> <a href="http://www.youtube.com" id="myLink2">open link 2</a> 
 



    document.getElementById("myLink1").onclick = function() { 
    window.open(
    "http://www.facebook.com" 
     ); 
     return false; 
     }; 

     document.getElementById("myLink2").onclick = function() { 
    window.open(
    "http://www.yahoo.com" 
     ); 
     return false; 
     }; 

Problemi correlati