name=が正しくリンクしない。

例えばsample.htmlで、<a name="hoo">HOO</a> とラベルをつけて、
Safariのアドレスバーから直接「sample.html#hoo」 と
入力すると、正しくhooの位置が表示されたり、されなかったりします。
あるいはJavaScriptで、window.open("sample.html#hoo",...と
やると常にsample.htmlが頭から表示されます。
ローカルではOKなんだけど、インターネットにUPするとNG。
これって、私の書き方がヘボだから?
ちなみに、Windows XPでInternet ExplorerではOK。その他のOSやブラウザは試せていません。

投稿日 2006/09/17 19:13

返信: 9

2006/09/21 00:05 Community User への返信

はじめまして。
自分も<a name="A1"><p>あああ</p></a>
とラベルを付けてページ内の任意の位置にリンクを貼っていますけど、リンクに問題は無いですが・・・
(確認はMac:Safari、Firefox、Netscape、Opera、IE、
 Win XPSP2:IE、Firefox、Netscape、Operaで全く問題無いです
テキストの一部分では無く、
<a name="A1"><p>あああ</p></a>
とブロックレベル要素にリンクすれば大丈夫なのではないでしょうか?Mac版IEは、ブロックレベル要素を指定してやらないと表示がおかしくなった記憶があったのでこういう記述にしています。

2006/09/22 10:30 Community User への返信

>テキストの一部分では無く、
><a name="A1"><p>あああ</p></a>
こんな書き方をするぐらいなら、id 属性を使ったほうがいいでしょう。つまり、単純に
<p id="A1">あああ</p>
とすればいいです。これでも #A1 でリンクできます。
ただし、id 属性にする場合は、先頭に数字が使えないので注意してください (HTML, XHTML の規約)。例えば id="20060922" という書き方はできません。
なお、id 値にハイフンを含む場合、Safari ではリンクがうまくできないようです。規約では許されているのにーー。

2006/09/22 18:03 Community User への返信

私はこんな感じで制作してます。
<a id="abc" name="abc"></a>
タグの間にテキストを挟む必要はありません。
不可視のアンカーとなって、どこにでも入れられます。
リンクは、nantoka.html#abc でOKです。
Macの各種ブラウザとWindowsのIEで確認しておりますが今の所問題はありません。

2006/09/24 19:28 Community User への返信

><a id="abc" name="abc"></a>
悪くはないですが、これは古いというか過渡期の書き方ですよね。id 属性を知らないブラウザに配慮した書き方ですから。
もはや id 属性を知らないウェブブラウザはないと考えていい (CSS が使えるなら id 属性を理解できるので) ので、わたしが示したように、実際にコンテンツが入っているブロック要素 (p とか div とか) に id 属性を振るのが、今風のやり方と言えるでしょう。

2006/09/24 20:51 Community User への返信

古いやり方と言うか、過渡期の方法というのは分かっていて使っています。
今風のやり方だけなく、それが必要な場合もあるということです。
質問者の方の問題解決の一助になればと思ったものですから。
その後の結果をお知らせいただけると良いのですが。

2006/09/25 20:38 Community User への返信

<a name="A1"><p>hoo</p></a>と記述したところ、何度か試すとやはり飛ばない現象が発生しました。(キャッシュが影響しているのか?とも思いましたが、クリアしてもNGでした。)もっともきれいにCSSで組んでいないので、(安直に)table内にnameを記述したのがマズいのかな?と思って、<p id="A1">hoo</p>とidでやったら、飛ぶようになりました。
でも<p>なので改行されてレイアウトがくずれるので、最終的には<a id="A1" name="A1"></a>で回避しました。なるべくブラウザに依存しないためには、この記述がもっとも無難だと思ったからです。(Safari以外にも正常に動作しないブラウザがあるかもしれないので...。)
どうやらSafariは、nameではなく、idの方が正しく解釈するみたいです。ひょっとしたら、従来の記述に対する互換性がやや欠けるのかもしれません。ただ、ローカルではOKで、インターネットにUPするとNGだという現象から、サーバー側の仕様に依存しているとも考えられます。(あまり考えづらいですが)UP先のサーバーがApacheか、IISかによっても変わるのかもしれません。
毎回悩むところですが、どのブラウザでも思惑通りに表現できる手法がないものか、とはがゆく思います。コレが正解!という記述方法があればいいのですが...。
いろいろとアドバイス頂きまして、本当にありがとうございました。

2006/09/25 21:23 Community User への返信

> どうやらSafariは、nameではなく、idの方が正しく解釈するみたいです。ひょっとしたら、従来の記述に対する互換性がやや欠けるのかもしれません。
というか、targzさんも書かれたようにname属性は6年以上も前のものです。古い書籍や以前に書かれたままで更新されていないようなHTML解説ページだとname属性で説明されていますが、これはHTML2とかを前提にしてあるページです。6年も前に既にHTML4.01が勧告されていますから、かなり古いモノと言えるでしょう。またXHTML1.1以降name属性は廃止されており、id属性を使う必要があります。
ちなみに<a id="A1" name="A1"></a>のように併用する方法はXHTML1.0で互換性の為に(targzさんが言われた過渡期の互換性の為に)あった様に思います。
という事でHTML4以降、XHTML1.1以降は、というか現在の殆どのブラウザではid属性を使う方が良いと思います。

2006/10/02 09:04 Community User への返信

すみません、自分の環境で表示出来ていたのでこれでいいと思っていた鼬です。
手元の解説書(HTML4.01対応)でページ内リンクについて
<a href="#A1">〜</a>
<a name="A1">〜</a>
でしなさいと指定されていたので素直にやっちゃった為に誤答をしてしまったようです。
http://openlab.ring.gr.jp/k16/htmllint/explain.html#id-link
で解説されているように、現状では古いブラウザ(id属性が解釈出来ない)の為にname属性も入れた方がいい、という事なんですね。
XHTMLではname属性が廃止されているとのことで、勉強し直してきます。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

name=が正しくリンクしない。

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。