2

非常に単純なタスクであるべき問題があります。BBCode タグを作成してテキスト アンカーを作成し、別のタグを作成してそのテキスト アンカーにジャンプします。

しかし、何かが起こっており、アンカーが Web サイトのルートにジャンプしています。

BBCode によって生成された HTML は次のとおりです。

<div id="section1">Section Header</div>
<a href="#section1">Goto Section Header</a>

ただし、ライブページにある場合、クリックすると、現在のページではなく、Web サイトのルートにジャンプします。これは Firefox と Chrome でテストされています。何が欠けているのかわからない。

これは、使用中の BBCode を含むライブ サンプル ページです (アンカーのソースのテキスト検索セクション 1)。 http://community.playstarbound.com/index.php?help/bb-codes

ご覧のとおり、「Goto」の下のリンクをクリックすると、http://community.playstarbound.com/index.php? help/bb -codesではなく、http: //community.playstarbound.com/#section1 に移動します。 #section1期待通り。

これを引き起こす可能性のあるこの div およびアンカー タグの外部に何かありますか?

4

3 に答える 3

3

問題

ブラウザがページのベース URL を正しく認識していないようです。したがって、アンカー リンクの相対 URL は現在、ブラウザによって次のように解釈されます。

http://community.playstarbound.com/#some-anchor

実際には実際のURLは

http://community.playstarbound.com/index.php?threads/expand-the-bb-code-selection.15492/#some-anchor

リンクの URL は現在のページの URL とは異なるため、ブラウザはそれを現在のページの内部アンカーではなく通常のリンクとして扱い、サイトのルートにリダイレクトされます。

ソリューション

  1. アンカー リンクに絶対パスを指定します。
  2. 編集:あなたが提案したように、サイトのbaseタグで指定された値を修正してください。
于 2013-02-23T21:54:57.977 に答える
2

修正方法:

baseタグに指定された値を修正できませんでした。また、絶対パスを指定できませんでした。代わりに、ちょっとした JavaScript マジックを行いました。

<a href="javascript:;" onclick="window.location.hash = 'some-anchor';">

それは私を直しました。

于 2013-02-23T22:29:46.137 に答える