人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptとiframeの質問です。

iframeで、外部サーバのページを表示します。
その際、任意の場所にまでスクロールを下げて表示させたいです。

表示するページは修正できません。
どうすれば宜しいでしょうか?サンプルをご提示いただけるとうれしいです。


●質問者: にらたま
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript サーバ スクロール
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●35ポイント

iframeのリンク先のコンテンツにはページ内ジャンプタグ(a name)は埋め込まれていないということですよね。

となると、JavaScriptのscrollToで強制的にスクロールさせる方法が考えられますが、ブラウザ環境によってスクロール量がまちまちという欠点があります。

サンプルは下記をご覧ください。

◎質問者からの返答

ありがとうございます。

でもこの例は、ページ内(リンク先コンテンツ)から操作する話ですよね?


2 ● nagase
●35ポイント

javascriptのscrollToでiframeの中身をピクセル単位でスクロールさせることができますが、ソースが外部サーバー(ドメイン)であるiframeは、クロスサイトの制限によってdomのアクセスが拒否されます。

例えば、以下のように同一サーバーと外部サーバーのiframeを設置して

>|html|

<iframe name="indomain" src="同一サーバーのコンテンツ"></iframe>

<iframe name="exdomain" src="外部サーバーのコンテンツ"></iframe>

||<

ページ内のフレーム一覧を保持する window.frames[] プロパティーでiframeにアクセスしてみると、

>|javascript|

for(var i=0;i<frames.length;i++){</p>

alert(frames[i].name);

frames[i].scrollTo(0,100);

}

||<

外部サーバーのiframeで、アクセス拒否のエラーとなるはずです。

上の回答でも触れられていますが、外部サーバーのコンテンツにフラグメント用アンカーが埋め込まれていれば、iframeのアドレスにフラメントを指定して目的の部分を表示させることができますが、修正できないとなればお望みの動作は不可能であると思います。

◎質問者からの返答

そういうことだったんですね。失礼致しました。

また、ご丁寧にありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ