※ ChatGPTを利用し、要約された質問です(原文:body onload 自動フォーカス)
次ページ遷移時のテキストフォーカスとスクロールについて
このQ&Aのポイント
次ページ遷移時にテキストにフォーカスを当て、その場所までスクロールする方法についてご質問です。
name属性にハイフンが含まれる場合、フォーカスの実行が失敗するため、他の名前を使用する方法を探しています。
また、テキストにフォーカスした状態でその場所までスクロールすることは可能でしょうか。
body onload 自動フォーカス
お世話になっております。
PHP・・・ちょっとは分かる
JavaScript・・・ほとんど素人
という程度の知識の者です。すみません。
次ページのテキストに自動フォーカスをするプログラムを構築しております。
諸々調べた結果、以下のコードで実行テストは成功しました。
<html>
<head>
</head>
<body onLoad="document.form1.field1.focus()">
<form action="#" name="form1">
<p>パスワード:<input type="password" name="field1" size="25"></p>
</form>
</body>
</html>
以下2点ご質問がございます。
1)
name属性についてですが、本番プログラムでは、
name="aaa-bbb-ccc"
というように、「-」が入っております。
そうすると、フォーカスの実行は失敗してしまします。
nameに「-」なしの名前をつければ問題ないのですが、
他のプログラムでも使用している名前の為、変更せずに構築することができればと考えております。
何かよい方法はございませんでしょうか。
2)
次ページに遷移した時に、テキストにフォーカスを当てるのと同時、
そのテキスト位置までスクロールすることは可能でしょうか。
同じく、<body onload=location.href='#aaa'>という形で、指定idの場所にスクロールすることはできましたが、
上記1)と組み合わせることができればと思います。
長々すみません。
要約すると、「次ページ遷移時にあるテキストをフォーカスしその場所までスクロールする」
ことが目的です。
何卒宜しくお願い申し上げます。
お礼
ご連絡が遅くなりました。 今回は上記の方法ではなく、 window.location.hash=group; (groupは変数) を利用して、id要素へ飛ばす方法に変えました。 今回の案件ではとても勉強になりました。 大変ありがとうございました。
補足
ご連絡ありがとうございます。 アラートを出してみました。 function scroll_op(goods){ document.getElementsByName(goods)[0].focus(); document.getElementsByName(goods)[0].style.backgroundColor="yellow"; alert(document.getElementsByName(goods)[0].offsetTop); window.scroll(0,document.getElementsByName(goods)[0].offsetTop); } すると、chromeでは「24」、IEでは「25」がでました。 goodsの引数値を変えても毎回同じアラートになります。 又、下には十分な空きスペースがあります。 記述に不備があるのでしょうか。