6

これを30分間検索してみたので、すでに質問されている場合はお詫び申し上げます。

一連の結果を返すAjaxがあり、クリックすると、次のページでGETするPHPのURLにデータが追加されたURLをリロードするだけです。問題は、ユーザーが組み込みのアンカー(削除できません)をクリックした場合、URLがsomething.com#location1追加されるため、実際にリダイレクトする新しいURLではなく、ブラウザーが長いアンカーとして解釈するURL?action=nextに変換されることです。something.com#location1?action=next

ユーザーがアンカー部分をクリックしない場合、このリダイレクトは次を使用してスムーズに機能しますwindow.location=document.url+"?action=next"

既存のページのURLからアンカー(ハッシュタグを含む)を削除する方法はありますか?

解決済み

マイケルWの答えを使って私はそれを解決することができました。私は単にこの行を置き換えました:

window.location=document.url+"?action=next"

これとともに:

window.location=document.location.href.match(/(^[^#]*)/)[0]+"?action=next"

助けてくれてありがとう!

4

4 に答える 4

13

これは少し簡単に思えます:

document.URL.replace(/#.*$/, "")
于 2013-04-30T03:56:54.447 に答える
5

場所のハッシュタグ前の部分に一致する可能性があります。

document.location.href.match(/(^[^#]*)/)
于 2013-03-04T02:30:55.583 に答える
2

ロケーションオブジェクトには独立したコンポーネントからアクセスでき、それらを使用して、必要な数の部分でURLを再構築できます。

現在、公式ドキュメントはオフラインですが、このサイトにはあるようです。

それらが生成している内部リンクである場合は、相対URLを生成するだけでよく、おそらくそれでlocation.pathname十分です。

質問にJavascriptのタグを付けましたが、PHPでコーディングしているので、必要なのはPHP側でこれらのリンクを生成することだと思います。

于 2013-03-04T02:28:10.750 に答える
0

私が使用しているもの:

document.location.href.split('#')[0];

最初のハッシュを見つけて、残りのパスを無視します。ハッシュがなければ問題ありません。この場合、パス全体を使用します。

于 2021-04-18T11:51:00.547 に答える