- ベストアンサー
IFRAMEとA NAMEについて 少しわかりにくいです
index.html内にIFRAMEでA.htm<IFRAME SRC="A.htm#b"> というように載せた場合、 index.htmが一番上で表示されずに<A NAME="b">がある位置で表示されます。 例として index.htmは <title> <font>題名<br>×15個 <IFRAME SRC="A.htm#b></IFRAME><br>×15個 A.htmは <font>ああああああああ <br><br><br> <A NAME="b"> いいいいいいいい です。index.htmにアクセスした場合、"題名"の位置で表示されずインフレーム内の<A NAME="b">の位置が一番上で表示されます。つまりずれるので題名がみれなくなります。 ちょっとわかりにくいですが原因と対処方法を教えてください
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
幾度も申し訳ありません。 前のスクリプトではスクロールが出来ないことに気づいたのでまた新しく作り直してみました。 下の部分をヘッドの中に入れて、ボディタグは <body onload="Scr()"> にしていただけると上手くいくのではないかと思います。 ------------------------------------------------------ <script> max = 10; as = 0; function Scr(){ if ( navigator.appName.charAt(0) == "M" ){ scroll(0,0); if (as < max) { as = as + 1; setTimeout("Scr()",4); } }} </script> ------------------------------------------------------ もし上手く動かないときは「max = 10;」の値を増やせば上手く動くかもしれません。
その他の回答 (5)
- done
- ベストアンサー率75% (3/4)
すみません、説明が一部不適切でした。 javascriptですが index.htm の<head>の中に埋め込んでください。 <body>も同じくindex.htmの中のものを変更でお願いします。
- done
- ベストアンサー率75% (3/4)
試してみましたが確かに同じ現象が起きますね。 多分IEのバグだと思うので、無理やりですが、javascriptを使って一番上に飛ばす方法を試してみました。 <head>~</head>の中に ------------------------------------------- <script language="JavaScript"> <!-- y=0; timeID=null; dy=2; li=170; sp=100; function scrollA(){ if ( navigator.appName.charAt(0) == "M" ){ if(y<li){ scrollTo(0,0); clearTimeout(timeID); timeID=setTimeout('scrollA()',sp); } }} //--> </script> ------------------------------------------ を入れて、<body>を <body onload="scrollA()"> としてみてください。 多分読み込み後に一番上に移動すると思います。 ネスケ等では問題がないようなのでIEでのみjavascriptが動くようにしてあります。 これはページスクロール用のscriptの改造なので、もっと簡単に同じことをやる方法があるのではないかと思うのですが…
- perla
- ベストアンサー率63% (67/105)
詳しい補足どうもありがとうございます。 ソースをコピーして確認させていただきましたが、確かにインラインフレームの位置で表示されるようですね。 A.htmlのほうで<BODY>が抜けているようなので追加してみましたが変わりませんでした。 他に特にソースに問題があるようでもないですよね。 Operaとネットスケープ7.1ではページの先頭から表示されていましたので、IEの仕様かバグでしょうか……? ちょっと状況も方法も違うので参考にはならないかもしれませんが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1014606 このような過去の質問がありましたので、そういう事もあるかと思いました。 自分も以前に似たような感じでインラインフレーム内にラベルを指定して呼び出していた事がありますが、レイアウト的に上下にずれるような縦長ページでなかったためか問題は何も感じていませんでした。 (640×480以内に全て納まるような…) 勉強不足ですね、すみません。
お礼
わざわざ色々試していただいたみたいですみません。ありがとうございます。 IEのバグなんでしょうかね?過去の質問も参考にみておきました。 うちの場合ちょっと縦長になってしまっておさまらなかったもので
- perla
- ベストアンサー率63% (67/105)
ついでに付け足し。 <IFRAME SRC="A.htm#b>→<IFRAME SRC="A.htm#b"> "が抜けてます。
補足
インデックスです <HTML> <HEAD><TITLE>テストです</TITLE></HEAD> <BODY><center><font SIZE="6" COLOR="blue">題名</font> <BR><BR><BR><BR><BR><BR><BR><BR> <font SIZE="6">中略</font> <BR><BR><BR><BR><BR><BR><BR><BR> <font SIZE="6">中略</font> <BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR> <BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR> <IFRAME SRC="A.html#b" HEIGHT="100"> </IFRAME></center> </BODY> </HTML> A.htmlです <HTML><HEAD><TITLE>インフレーム</TITLE></HEAD> <font color="red" SIZE="6">あああああああああああ</font> <BR><BR><BR><BR><BR><BR><BR><BR> <A NAME="b">いいいいいいいいいいい<A NAME=”b”></a> <BR><BR><BR><BR><BR><BR><BR><BR> <BR><BR><BR><BR><BR><BR><BR><BR> </BODY></HTML> どうでしょうか?
- perla
- ベストアンサー率63% (67/105)
何となくHTMLの基礎を理解してらっしゃらないように思えますので、初心者向けの支援サイトなどを熟読される事をおすすめします。 (例) http://siriasu.s10.xrea.com/ 例えば、お書きになった見本はファイルの一部を抜き出したものだと思いますので、他に必要な要素などは書かれているのでしょうが、いきなり<title>が出てきて、その後に必ず書かれるはずの</title></head><body>が無い。 ここより上の部分に書かれているのかもしれませんが、だとすれば順序が滅茶苦茶です。 <font>というタグも不可解な感じがします…省略した形で書かれたのかもしれませんが……タグの意図が判りません。 それから「A.html」と「A.htm」は全く別物ですので、ご注意ください。所々混同しておられるようです。 index.htmlがおかしな位置で表示されるというのは、HTMLの不備によるものではないでしょうか? 何処がどう間違っているのかは全文見ないことには判りません。 もしこれが全文だとすれば、必要な要素が抜けまくっています(<html><head><body>など)。 また殆どのタグは閉じタグとワンセットで入れ子構造を成すよう書くということも覚えておいてください。 この順番を間違えるだけでタグが反映されなかったり、表示が崩れてしまうこともあります。
補足
ご回答ありがとうございます。 <font>は<font size="6">の略です 「A.html」と「A.htm」はミスです。普段htm派なのでクセで間違えました。 一応</>ですべてくくっております。確かに例をみたら適当すぎました。もうしわけないです>< <html><head><body>は自動的にいれてくれるソフトを使ってたので忘れてました。いれたのですがやはり解決されませんでした
お礼
ご回答&作成ありがとうございます。 やはりscriptを使わないとダメみたいですね。 done様が作成されたタグで見事できました。 (自分のパソコンの中だとセキュリティでできませんがネット上にアップすれば問題なくできました) 助かりましたありがとうございます