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


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

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

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

回答の条件
  • 1人2回まで
  • 登録:2007/07/09 22:11:35
  • 終了:2007/07/11 10:56:51

回答(2件)

id:molloyed No.1

molloyed回答回数59ベストアンサー獲得回数22007/07/10 02:45:35

ポイント30pt

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

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

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

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

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

id:yoski

ありがとうございます。

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

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

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

2007/07/10 11:40:44
id:aside No.2

aside回答回数339ベストアンサー獲得回数312007/07/10 13:30:36

ポイント50pt
<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でとってみる、、、?

やっぱわかりません><

id:yoski

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

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

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

2007/07/10 17:32:52

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません