[keitaiスキン] #contentsから目的のアンカーへ飛べない†
- 元タイトル: 携帯でのアンカーのバグ(#contentsから目的のアンカーへ飛べない)
- ページ: BugTrack2
- 投稿者: selphi
- 優先順位: 普通
- 状態: 提案
- カテゴリー: 本体バグ
- 投稿日: 2005-10-30 (日) 18:59:49
- バージョン: 1.4.6
メッセージ†
devのCSV版 1.4.6 なんですが、
携帯用に吐かれるソースが、
#contents で生成される目次部分では
<a href="#abcd1234">コンテンツ1</a>
なんて感じになっているのに対し、
実際のアンカー先が
<h3 id="content_1_0">
という感じになっているので目的のアンカーへジャンプすることができません。
これを
<h3 id="#abcd1234">
とか
<a name="#abcd1234">
という風に携帯で認識できる適正なタグで出力させる方法はありますでしょうか?
- こんにちは。これはcontents擬似プラグインに対する修正(固定アンカーがあればそれを使用する)と、keitaiスキンに最後にコミットした r1.13~r1.14(†を表示しない)が干渉しているもののようです。とり急ぎkeitaiスキンの「Ignore †s」とある部分をコメントアウトすると、今まで通りに † が表示され、固定アンカーのリンクが有効になります。より綺麗な解は、Ignore †s の部分をもう少し賢い正規表現にする事かと思います。 -- henoheno
- (content_1_0 といった形式も、固定アンカーも、両方出力しておくのが互換性を考えるとベターと思われます) -- henoheno
- <a name= で出力させる方法はないんでしょうか? 携帯で<a class= が認識しないのでアンカーへ飛べないんですが・・・ --
- こんにちは :) それはひょっとして、今までのPukiWikiでもうまく動いていないですね? (^^; そのような事情も勘案したものにしないと幸せになれなそうですね。 -- henoheno
- <a class="~">じゃなくて<a id="~">がダメということではないでしょうか?(HTML3.2以前ぐらいの仕様だとid修飾子を認識してくれないはず)いずれにしても、aname.inc.php の出力を全面的に抑制しているかっこうになっているのは不都合なので、keitai.skin.phpをいじってみました。 --
- $body = preg_replace('#<a[^>]+>' . preg_quote($_symbol_anchor, '#') . '</a>#', '', $body);
⇒ $body = preg_replace('#<a[^>]*id="([^"]+)"[^>]*>' . preg_quote($_symbol_anchor, '#') . '</a>#', '<a id="$1" />', $body);
古い(id修飾子を理解できない)携帯向けには、<a id="$1" /> ⇒ <a name="$1"></a> --
- 1.4.7でkeitai.skin.phpを$body = preg_replace('#<a[^>]*id="([^"]+)"[^>]*>' . preg_quote($_symbol_anchor, '#') . '</a>#', '<a id="$1" />', $body);に変更しましたがうまくいきませんでした。携帯はSoftbank 811SHです。 -- fujii
- 古い(id修飾子を理解できない)携帯向け の方は試されましたか? --
- 解決しました!うっかりデフォルトのkeitai.skin.phpを変更していたのですが、使用しているスキンのディレクトリにあるkeitai.skin.phpを変更するとジャンプできました。ありがとうございました。 -- fujii
- アンカーにはジャンプできたのですが、ページが長文で分割された場合はやはりジャンプできないんですね。なんとかページの情報+アンカー情報でリンクが出来ればいいのかな -- fujii
- contentsだけかと思いましたが、リンクを[ [hoge>hoge1/hoge2#hogehoge] ]としても携帯ではNGでした。PCは問題ないんですけどね。 -- fujii