22

私のページにリンクがあります

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

そして、目標は、このリンクをたどり(新しいタブで開く)、その属性を変更する(前のタブで)ことです。つまり、新しいタブでgoogle.comを開き、リンクを振り返ると、更新されます。

私はこのjsコードを試しました

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

ただし、新しいオープニングタブのターゲットも変更されます。私の例では、グーグルを開く代わりにフェイスブックを開きます。

それを修正することは可能ですか?

4

6 に答える 6

52

hrefonclickの前に発火するため、ページが開かれる前に変更されます。次のように関数でウィンドウの開始を処理する必要があります。

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

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

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

    return false;
}
于 2013-03-13T12:27:29.010 に答える
4

setTimeoutクリック後に実行するためにコードを遅らせることができます

function changeLink(){
    setTimeout(function() {
        var link = document.getElementById("mylink");
        link.setAttribute('href', "http://facebook.com");
        document.getElementById("mylink").innerHTML = "facebook";
    }, 100);
}
于 2013-03-13T12:24:57.933 に答える
2

交換

onclick="changeLink();"

onclick="changeLink(); return false;"

デフォルトのアクションをキャンセルするには

于 2013-03-13T12:26:14.883 に答える
0

たとえば、これを試してください:

<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」
        );
        false を返します。
      };

      document.getElementById("myLink2").onclick = function() {
    window.open(
    「http://www.yahoo.com」
        );
        false を返します。
      };

于 2015-03-05T15:37:59.023 に答える
0

これはページで変更できますload

私の意図は、ページがload機能に来たら、リンクを切り替えることです(必要なリンクの現在のリンク)

于 2013-03-13T12:30:09.573 に答える