2

jQuery-Tabs を含むサイトを持っているので、URL にハッシュタグを付けて、目的のタブを表示します。

www.abc.de/site#tab4

このサイトには、次のようなリンクがあります。

<a href="/site.html?option=1" name="optionslink" id="optionslink" onclick="javascript:test()">LINKTEXT</a>

このリンクを使用して、ユーザーは製品のオプションを選択できます。クリックするとサイトがリロードされます。URLのハッシュタグが読み上げられた後に文字列をクリックすると、この文字列がURLまたはリンクに追加されます...

私の関数は次のようになります。

function test() {
var info=window.location.hash;
alert(info);
document.getElementById("optionslink").href+info;
return true;
}

これまでのところ、関数をクリックすると、正しいハッシュタグとそれが文字列であることを示すアラートポップアップが表示されます。ただし、ハッシュタグと文字列を追加せずにサイトがリロードされます。次のようになります。

www.abc.de/site.html?option=1

次のようになります。

www.abc.de/site.html?option=1#tab4

どうすればこれを機能させることができますか?

4

2 に答える 2

3

href 属性を変更していません。試す

document.getElementById("optionslink").href += info;

document.getElementById("optionslink").href+info;連結があるだけで、 href 属性への割り当てがないため、コードは効果がありません。

于 2012-05-24T08:54:03.097 に答える
2

場所を変更するだけです:

function test() {
    var info=window.location.hash;
    window.location = document.getElementById("optionslink").href + info;
    return false;
}

<a href="/site.html?option=1" name="optionslink" id="optionslink" onclick="return test();">LINKTEXT</a>

別のこととして、現在のアンカーを関数に渡し、DOM クエリのオーバーヘッドを節約します。

function test(anchor) {
    var info=window.location.hash;
    window.location = anchor.href + info;
    return false;
}

<a href="/site.html?option=1" name="optionslink" 
   id="optionslink" onclick="return test(this);">LINKTEXT</a>

inline scriptsJavaScript イベントでは、まったく使用しないことがベスト プラクティスであることに注意してください。

について読む必要があります。MDNaddEventListenerで読むことができます

于 2012-05-24T08:54:56.207 に答える