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

[javascript] iframe の中に表示されているページが別ドメインに遷移したことを知る方法はありますか?

かなり無理だとは思うんですが・・・ onload イベントで「クリックして遷移した」ことは分かるので、ひょっとすると「別ドメインに遷移したよ」くらいまではわかるのでは、と思い・・・。

いいアイデアあれば是非!

※iframeの初期表示ページからして親ページのドメインとは異なっているものとします。。

●質問者: yoski
●カテゴリ:コンピュータ インターネット
✍キーワード:JavaScript アイデア イベント クリック ドメイン
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● molloyed
●30ポイント

http://www5e.biglobe.ne.jp/~access_r/hp/javascript/js_066.html

のようにiframeの中のURLを知ることはできますよね。

(このソースはちょっとレガシー感がありますがイメージはわかっていただけるかと)

移動前と移動後のURLからsubstrかスラッシュでsplitするとかしてドメイン名だけ取り出して比べれば移動が確認できます。

比較のタイミングですが、iframeのなかのドキュメントにonloadイベントが仕掛けられるならそれで良いし、よそのサイトなので困難であれば、親の側でsetintervalなどを使って定期的にチェックするとか

◎質問者からの返答

ありがとうございます。

質問がわかりにくくてすいません。

同じドメインならURL取得とかぜんぜん簡単なんですが、別ドメインだとセキュリティ上の理由でURLは取れないんですよね・・・

で、なんとか「どっかよそ行ったよ」だけでも、わかればと思ったのですが・・・


2 ● aside
●50ポイント
<html>
<head>
<title>iframe test</title>
<script type="text/javascript">
<!--
function test() {
var dummy = "";
try {
dummy = document.frames[0].location.href;
} catch(e) {
if (e.message == "書き込みできません。") {
alert("ドメイン変更された可能性があります。");
}
}
}
//-->
</script>
</head>
<body>
<a href="http://www.google.co.jp" target="iFrameTest">google</a><br>
<iframe name="iFrameTest" width="200" height="150" onload="test()">
</iframe>
</body>
</html>

ドメインが変更されると「書き込みできません。」エラーが出るので、

それをtry-catchでとってみる、、、?

やっぱわかりません><

◎質問者からの返答

うーん、難しいですんね。別ドメイン間だと判別できませんもんね。

iframe の要素にたいして、head や body 要素までは取れるんですが、その中にアクセスできないですね。

中はさすがに見れないと思うんですが、body要素まで取れているなら、なんらかの判別方法があるような気もしつつ・・・難しい。

関連質問


●質問をもっと探す●



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