0

このような URL がありますが、タグにindex.aspxリンクされているボタンをクリックすると、これが追加されますanchor#video

だからそれは見えるでしょう

index.aspx#video

#videoから削除する場所はありurlますか?

4

1 に答える 1

0

フィードバックがあまり得られていないため、質問があいまいであるため、3 つの選択肢を示します。

オプション 1 - アンカーの場所を使用し、アンカーを削除して、ウィンドウを適切に再スクロールします。

この記事で参照されているように、location.hash を使用して # 値にアクセスできます。残念ながら、location.hash = '' を設定するとすぐに、ページは画面の上部に移動します (URL に # 記号が残ります)。location.href を設定すると、ページは保存されているローカル変数を失うページから移動します。

考えられる回避策の 1 つは、次のようなものです。

function RemoveHash(){
  var y = location.hash.substring(1, location.hash.length);
  location.hash = '';
  window.scrollTo(0, y);
}

これの欠点は、画面を上に戻したり、自分の場所に戻したりするときに画面が点滅することです. 別の方法として、アンカーを使用する代わりに、ページ上の要素の場所を見つけることができますが、私の経験では、これは不正確であり、ブラウザーによって異なり、メンテナンスの問題になります。JQuery ライブラリはこれに役立つかもしれませんが、このルートをたどる場合は調べる価値があるかもしれません。

オプション 2 - アンカー タグなしで URL を取得する

置換正規表現を実行して、URL からアンカーを削除できます。次のようなものを使用できます。

location.href.replace(/\#\w+/g, "");

オプション 3 - アンカーを使用せず、JavaScript を使用してスクロールする

このチュートリアルに従って、アンカーを使用せずに、JavaScript を使用してページを正しい場所にスクロールするだけです。基本的な考え方は、要素のスクロール オフセットを取得し、画面をその位置までスクロールすることです。

function elmYPosition(eID) {
    var elm = document.getElementById(eID);
    var y = elm.offsetTop;
    var node = elm;
    while (node.offsetParent && node.offsetParent != document.body) {
        node = node.offsetParent;
        y += node.offsetTop;
    } return y;
}

ハイパーリンクを使用して JavaScript を呼び出します。

<a href="javascript:void(0);" onclick="window.scrollTo(0, elmYPosition('myAnchor'))>myAnchor</a>
于 2013-04-10T13:46:31.143 に答える