2013-03-13 12 views
12

mam link na mojej stronieJak zmienić atrybut href za pomocą JavaScriptu po otwarciu linku w nowym oknie?

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

i celem jest, aby śledzić ten link (otwarcie w nowej karcie) i zmienić jego atrybuty (na poprzedniej karcie). Mam na myśli, że otwieramy witrynę google.com w nowej karcie i jeśli spojrzymy wstecz na link, zostanie on odświeżony.

Próbowałem ten kod js

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

Ale to także zmienia cel nowej karcie otwarcia. Zamiast otwierania go otwiera mój facebook w moim przykładzie.

Czy można to naprawić? Z góry dziękuję.

Odpowiedz

28

Twoje onclick pożary przed href tak to się zmieni, zanim strona zostanie otwarta, trzeba dokonać funkcja obsługi otworu okiennego w taki sposób:

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

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

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

    return false; 
} 
+3

Dzięki, działa dobrze. Właśnie usunąłem błąd "" w twoim przykładzie. –

4

Można opóźnić swój kod za pomocą setTimeout wykonać po kliknięciu

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

Dzięki, to także dobry wariant dla mnie. –

2

Wymień

onclick="changeLink();" 

przez

onclick="changeLink(); return false;" 

aby anulować jego domyślna akcja

0

Można to zmienić na stronie load.

Moją intencją jest to, że gdy strona pochodzi z funkcją load, przełącznik łącza (obecny związek w wymaganym jednego)

0

na przykład spróbuj tego:

<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; 
     }; 

Powiązane problemy