0

http://example.com/page.do?param1=helloのように、URLにパラメータが含まれている生成されたページがいくつかあります。これらのページには、<aname="here">このように</a>名前付きのアンカーが含まれています。また、<ahref = "#here">このように</a>、名前付きアンカーを参照する対応するリンクがあります。今日、ほとんどの人はこれらを「スキップリンク」と呼んでいます。

スキップリンクをクリックすると、ブラウザは元のURLと一致するURLを作成して追跡し、名前付きアンカーが最後に追加されます: http ://example.com/page.do?param1=hello#here

FirefoxとIEでは、これは正常に機能します。Chrome、Safari、およびその他のWebKitベースのブラウザーでは、パラメーターが失われ、http://example.com/page.do?#hereが発生します。これは、当サイトでは無効であり、404エラーが発生するだけです。

興味深いことに、ロケーションバーに完全なリンクを手動で配置してEnterキーを押すと、正しく動作します。

私はしばらくグーグルで検索し、WebKitがスキップリンクに問題があることについて多くの議論を見てきましたが、パラメーターが失われているここでの状況に一致するものはありません。

このパラメータの喪失は既知のバグですか?誰かが回避策を見たことがありますか?

4

1 に答える 1

0

同じ問題が発生しました。私が言えることから、これは次のようなメタタグの使用に関連しています: <base href="http://example.com" />. example.com#foo設定すると、リンクはではなく を指しますexample.com?foo=bar#foo

この質問を見つけたことを知っています。したがって、アンカー タグの動作は既知のものです。 <base> html タグを使用することをお勧めしますか?

base タグを削除できないので、JavaScript でこれを処理しようとします。

于 2013-08-09T10:17:26.360 に答える