このような URL がありますが、タグにindex.aspx
リンクされているボタンをクリックすると、これが追加されますanchor
#video
だからそれは見えるでしょう
index.aspx#video
#video
から削除する場所はありurl
ますか?
このような URL がありますが、タグにindex.aspx
リンクされているボタンをクリックすると、これが追加されますanchor
#video
だからそれは見えるでしょう
index.aspx#video
#video
から削除する場所はありurl
ますか?
フィードバックがあまり得られていないため、質問があいまいであるため、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>