HTML5でページ内リンクが効かなかったら
状態:不明
閲覧数:4,930
投稿日:2011-12-26
更新日:2011-12-26
HTML5でページ内リンクが効かなかったので調査。
原因は、HTML5じゃなかった。
HTML5よ。疑ってごめんなさい…
▽見落としがちなHTML5で変更された要素いろいろ | Webクリエイターボックス
>アンカーリンクを表すために a 要素を使ってはいけないようです。今までは <a name=""> のところへジャンプしていましたが、アンカーしたいところは、そのコンテンツに idを指定して飛ばします
てのを見て、コレダ。
と思い試してみたが違った。
原因は、<body onLoad="setTimeout(function() {window.scrollTo(0, 1)}, 100)">だったみたい。
>setTimeout()は設定時間後に関数を呼び出す命令文で、それ自体では繰り返しは起こりません
>setTimeout(関数名,時間)
>設定した時間(単位はミリ秒)が経過すると、関数を呼び出します
>window.scrollTo - 絶対位置指定でスクロール
>scrollTo(x,y)
>引数: x=X座標, y=Y座標
つまり、この記述により、
「ページを読み込んで100ミリ秒(0.1秒)後に、一度だけページを一番上部までスクロールさせている」
らしい。
確かに、一瞬ページ内リンクが効くときもあったからね。
そういうことですか。
ちなみに、HTML5でname要素は廃止されたものの、利用してもエラーとはならないらしい。
▽HTML 5で廃止される主な要素と属性 - HTML 5について(関連コラム集)
要は、非推奨ってことかしら。
普通に動作するんだったら、気が付かない人が多いんじゃなくって?
紛らわしくない?
まあ、でも、廃止なんだから、基本的にも応用的にもname要素は使うな、ということなんでしょう。
だけど、自分みたいに説明も読まずにいきなりHTML5にして、動かねー、とか騒ぐヤツがいるから、しょうがないから、「警告に留めることとします」ということになっていると思われ。
ちなみに、今気が付いたのだけど、name要素じゃなくて、name属性なのね。
要素と属性の違いが分かんないんだけど、
属性はプロパティで、要素は構成要素みたいなトコか。
そのまんまだけど…
原因は、HTML5じゃなかった。
HTML5よ。疑ってごめんなさい…
▽見落としがちなHTML5で変更された要素いろいろ | Webクリエイターボックス
>アンカーリンクを表すために a 要素を使ってはいけないようです。今までは <a name=""> のところへジャンプしていましたが、アンカーしたいところは、そのコンテンツに idを指定して飛ばします
てのを見て、コレダ。
と思い試してみたが違った。
原因は、<body onLoad="setTimeout(function() {window.scrollTo(0, 1)}, 100)">だったみたい。
>setTimeout()は設定時間後に関数を呼び出す命令文で、それ自体では繰り返しは起こりません
>setTimeout(関数名,時間)
>設定した時間(単位はミリ秒)が経過すると、関数を呼び出します
>window.scrollTo - 絶対位置指定でスクロール
>scrollTo(x,y)
>引数: x=X座標, y=Y座標
つまり、この記述により、
「ページを読み込んで100ミリ秒(0.1秒)後に、一度だけページを一番上部までスクロールさせている」
らしい。
確かに、一瞬ページ内リンクが効くときもあったからね。
そういうことですか。
ちなみに、HTML5でname要素は廃止されたものの、利用してもエラーとはならないらしい。
▽HTML 5で廃止される主な要素と属性 - HTML 5について(関連コラム集)
要は、非推奨ってことかしら。
普通に動作するんだったら、気が付かない人が多いんじゃなくって?
紛らわしくない?
まあ、でも、廃止なんだから、基本的にも応用的にもname要素は使うな、ということなんでしょう。
だけど、自分みたいに説明も読まずにいきなりHTML5にして、動かねー、とか騒ぐヤツがいるから、しょうがないから、「警告に留めることとします」ということになっていると思われ。
ちなみに、今気が付いたのだけど、name要素じゃなくて、name属性なのね。
要素と属性の違いが分かんないんだけど、
属性はプロパティで、要素は構成要素みたいなトコか。
そのまんまだけど…