web-dev-qa-db-ja.com

URLの最後に#記号が追加されるのはなぜですか?

注:私はこれをサイト開発者の視点から求めています(そこで誰かを助けようとしています)。ユーザーとしてではありません。これをsuperuser.comに転送しないでください。サーバー管理者の質問です。

こちらをご覧ください

http://www.wanimo.com/fr/chiens/coussin-matelas-tapis-pour-chien-sc28/tapis-plat-urban-chic-sf7263/

ページの末尾に#が付いた同じページにリダイレクトされることがわかります。さらに悪いことに、クリックして戻るとゴミのURLが表示されます。

リダイレクトの原因をデバッグしようとしています。それを見つける方法に関するアドバイスはありますか?

2
Niro

フローティング広告を取得したことはありませんが、Cookieで広告がトリガーされていると想定しています(まだ長期またはセッションであるかどうかを確認しませんでした)。ポンド記号(#)は、ページにハッシュタグを追加するためにあります。このトンを使用して、JavaScript変数をページ上の関数に渡します。通常の方法で変数を渡すのと似ています../somepage.html?x=1&y=2.

また、これらはアンカーリンクとして古い方法で機能します。ロード後にページの特定のセクションにジャンプするようにしたい場合は、URLのアンカータグをプッシュして、ビューポートにページを特定のポイントに強制的にジャンプさせます。

個人的に、その広告のリンクには、href = "#"を指すように誤って設定されたリンクがあり、onclickイベントが機能を引き起こしていると推測しています。これは、関数でjavascriptを使用し、ハッシュタグの適用を回避するためにfalseを返さないようにする場合によくある間違いです。

2
XOPJ

JavaScriptフローティング広告が表示されるまで#が表示されないので、それを閉じます。それを実現するJavaScriptがそれをやっていると思います。 2度目に戻ったとき、広告もリダイレクトもありませんでした。

0
John Conde

問題の原因は広告です。自身を閉じるためのリンクがあります(Fermer)。リンクのonclickイベントには、関数呼び出しfermeture()があります。 hrefは「#」です。ただし、onclickイベントにはfalseが返されません。つまり、ページ http://www.wanimo.com/fr/chiens/coussin-matelas-tapis-pour-chien-sc28/tapis-plat- urban-chic-sf7263 /# がロードされます。

この問題を解決するには、広告ウィンドウは次のようになります:<a href="#" onclick="fermeture(); return false"> Fermer </a>

リンクのonclickイベントで「return false」とは、ページがhref属性のURLにリダイレクトされないことを意味しますが、何も起こらなかったように現在のページに残ります。

0
bdadam