iframe内に表示した内容(aaa.html)を、
ページ訪問時(もしくは更新時)に自動的に100px下にスクロール
させたいと思っていますが、うまくできず困っています。
将来的にはif文によってスクロール位置を変えたいと考えています。
またサイトの都合上、アンカータグを使用しての位置指定はできません。
JavaScriptの使い方が間違っているのでしょうか?
ご教示お願い致します。
以下ソースです。
framescroll.html
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
// 縦スクロール-上
function framescrollu() {
document.getElementById("frame1").contentWindow.scrollBy(0,-100);}
// 縦スクロール-下
function framescrolld() {
document.getElementById("frame1").contentWindow.scrollBy(0,100);}
</script>
</head>
<body>
<center>
<script type="text/javascript">
// 自動スクロール-下に100
document.getElementById("frame1").contentWindow.scrollBy(0,100);}
</script>
<!-- 縦スクロール -->
<form>
<input type="button" value="up" onClick="JavaScript:framescrollu()">
<input type="button" value="down" onClick="JavaScript:framescrolld()">
</form>
<br>
<iframe id="frame1" src="aaa.html" name="frame1" frameborder="1" scrolling="auto" width="200" height="200">
</iframe>
</center>
</body>
</html>
aaa.html
ああああああああああああああああああああああ<br>
いいいいいいいいいいいいいいいいいいいいいい<br>
うううううううううううううううううううううう<br>
ええええええええええええええええええええええ<br>
おおおおおおおおおおおおおおおおおおおおおお<br>
ああああああああああああああああああああああ<br>
いいいいいいいいいいいいいいいいいいいいいい<br>
うううううううううううううううううううううう<br>
ええええええええええええええええええええええ<br>
おおおおおおおおおおおおおおおおおおおおおお<br>
ああああああああああああああああああああああ<br>
いいいいいいいいいいいいいいいいいいいいいい<br>
うううううううううううううううううううううう<br>
ええええええええええええええええええええええ<br>
おおおおおおおおおおおおおおおおおおおおおお<br>
No.1ベストアンサー
- 回答日時:
2つ問題があります。
framescroll.html 22行目
閉じカッコが余分。
誤:document.getElementById("frame1").contentWindow.scrollBy(0,100);}
正:document.getElementById("frame1").contentWindow.scrollBy(0,100);
元のソースはJavaScriptエラーが出ていました。
しかしこう直してもエラーは出なくなりましたが動きませんでした。
もうひとつの問題はスクリプトが呼ばれるタイミングです。
scriptタグのグローバルな部分に記述されているので
ブラウザがHTMLソースのscriptタグのところまで読み込んだ瞬間に実行されるからでしょう。
つまりiframeの中身の準備が完了する前にスクリプトが実行されてしまっていると。
初心者が陥るよくある問題です。
ページがすべて読み込まれた後にスクリプトを実行させたいのでしょうから
「<body onload="framescrolld()">」などとすればOKです。
IE8だけですが動作確認しました。
できました!
ありがとうございます。
「body onload」はページ読み込み完了時の動作なのですね。
とても勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP php ログイン 1 2022/11/01 00:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでフォームのListbo...
-
Excelでワードアートや図を常に...
-
リストビューをスクロールさせ...
-
PDFを(htmlのように)無限に縦...
-
Excelで一部分だけを常に表示さ...
-
画像とグラフの重ね合わせ
-
MFCでのスクロールバーの扱い
-
エクセルで行を固定しその下か...
-
マウスでコロコロしたいんですが…
-
ワードでHP作成中ですが流れ...
-
vb,netでtextboxの文字を右から...
-
ページ訪問時にiframe内を自動...
-
星の島のにゃんこなんですけど...
-
大きい表へのスクロールバーの...
-
検索履歴の語句を選んで削除したい
-
リストビューのスクロールバー...
-
メニューバーがついてくる仕組み
-
階層フレキシブル グリッド コ...
-
CTreeCtrlのHitTestメソッドに...
-
文章の自動スクロール
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
エクセルVBAでフォームのListbo...
-
PDFを(htmlのように)無限に縦...
-
リストビューをスクロールさせ...
-
Excelで1.2行目だけ固定して...
-
Excelで一部分だけを常に表示さ...
-
大きい表へのスクロールバーの...
-
Visual Basicから Spreadのスク...
-
vb,netでtextboxの文字を右から...
-
ページ訪問時にiframe内を自動...
-
アコーディオンで開かれたパネ...
-
マウスオーバー→ホイール回転で...
-
webページで横方向にアンカーを...
-
リストビューの水平スクロール...
-
ExcelVBAで他のアプリをスクロ...
-
IFRAMEでscrolling="yes|no"の...
-
リストビューのスクロールバー...
-
ページ読み込み時に自動でスク...
-
子要素のスクロールが親要素に...
-
Webサイト内でスクロールする小...
おすすめ情報