ただし、iframe内のページが別ドメインの場合でも可能な事が条件です。
以下の事は試してみました。
・iframeのsrc属性を取得。ユーザがiframe内で違うページに移動した場合のURLは取得できませんでした。
・javascriptで普通にwindow_name.location.hrefと取得。別ドメインの場合はクロスドメインのセキュリティ制限に引っかかりました。
最終的に達成したい事
・自分のサイト内からユーザに他のサイトを閲覧してもらって、そのサイトのURLを取得したい
上記が達成できるならiframeにこだわりません。
よろしくお願いします。
CGIでリファラを取得してみてはどうでしょうか。
その場合でもユーザがiframe内で違うページに移動した場合のURLは取得できないと思うので、フォームに変数を隠してやるなどの手法が考えられます。
JavaScriptのsame origin policyに反してしまいますので、それは無理なのではないかと思います。
same origin policy、初めて知りました。
勉強になりました。ありがとうございます。
やはりjavascriptでは無理ぽいですよね。
やはり、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みたいに書き換える
っていう感じではないでしょうか。
ちょっとわかりづらくてすみません。
ああ、そういうことですね。わかりました。ありがとうございます。
実はこの形で実装したのですが、フォームを使った検索などのWebページなんかは、対応させるのがなかなか大変でした。
今はまだ不完全で、今後完璧にチューニングすればいけそうな感じです。
しかし、URLが知りたいだけなのでもう少しお手軽にできないかなーーーっと色気を出してしまい、こんな質問をさせていただきました。
ありがとうございます。
うーん、もしかしたら聞き方が悪かったかもしれません。
cgiでリファラをとるには、自分のサイトへのURLをクリックしてもらわないといけないと思いますが、iframe内は完全に他人のサイトなので、他人サイト→他人サイトだったらリファラはとれないのでは?
あと、変数を埋め込むのも他人サイトだと難しいのでは?
もし私の認識違いや、良い方法があるなら教えてください。
よろしくお願いします。