iframe内の現在のURLを取得する方法を教えてください。javascript,flash,cgi手法は問いません。

ただし、iframe内のページが別ドメインの場合でも可能な事が条件です。
以下の事は試してみました。
・iframeのsrc属性を取得。ユーザがiframe内で違うページに移動した場合のURLは取得できませんでした。
・javascriptで普通にwindow_name.location.hrefと取得。別ドメインの場合はクロスドメインのセキュリティ制限に引っかかりました。
 
最終的に達成したい事
・自分のサイト内からユーザに他のサイトを閲覧してもらって、そのサイトのURLを取得したい
上記が達成できるならiframeにこだわりません。
よろしくお願いします。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2007/12/01 13:50:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:mitsu1986 No.1

回答回数33ベストアンサー獲得回数1

ポイント32pt

CGIでリファラを取得してみてはどうでしょうか。

その場合でもユーザがiframe内で違うページに移動した場合のURLは取得できないと思うので、フォームに変数を隠してやるなどの手法が考えられます。

id:dddrive

ありがとうございます。

うーん、もしかしたら聞き方が悪かったかもしれません。

cgiでリファラをとるには、自分のサイトへのURLをクリックしてもらわないといけないと思いますが、iframe内は完全に他人のサイトなので、他人サイト→他人サイトだったらリファラはとれないのでは?

あと、変数を埋め込むのも他人サイトだと難しいのでは?

もし私の認識違いや、良い方法があるなら教えてください。

よろしくお願いします。

2007/11/25 05:03:34
id:sukesam No.2

回答回数8ベストアンサー獲得回数0

ポイント16pt

JavaScriptのsame origin policyに反してしまいますので、それは無理なのではないかと思います。

id:dddrive

same origin policy、初めて知りました。

勉強になりました。ありがとうございます。

やはりjavascriptでは無理ぽいですよね。

2007/11/26 13:00:15
id:mitsu1986 No.3

回答回数33ベストアンサー獲得回数1

ポイント32pt

やはり、CGI、PHPなどを使用する必要があるのではないでしょうか。

雰囲気的には、CGIでProxyを作ってやる感じですかね。

たとえば、http://www.a.co.jp/の中で、http://www.b.co.jp/を開こうとしていて、

その中にhttp://www.c.co.jp/へのリンクがある場合、

http://www.a.co.jp/のページの中に、

iframeで、http://www.a.co.jp/iframe.php?u=www.b.co.jpみたいな形で呼び出し、

そのiframe中のURLはhttp://www.a.co.jp/index.php?www.c.co.jpみたいに書き換える

っていう感じではないでしょうか。

ちょっとわかりづらくてすみません。

id:dddrive

ああ、そういうことですね。わかりました。ありがとうございます。

実はこの形で実装したのですが、フォームを使った検索などのWebページなんかは、対応させるのがなかなか大変でした。

今はまだ不完全で、今後完璧にチューニングすればいけそうな感じです。

しかし、URLが知りたいだけなのでもう少しお手軽にできないかなーーーっと色気を出してしまい、こんな質問をさせていただきました。

2007/11/26 13:04:23

コメントはまだありません

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

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

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

回答リクエストを送信したユーザーはいません