web-dev-qa-db-ja.com

JQueryを使用してiframeの現在のソースを取得する

ユーザーが同じドメインに属していないiframe内のページのリンクをクリックするたびに通知を受け取る必要があります。私はxssの制限を認識していますが、私が知る必要があるのは、iframeで提供されている現在のページだけです。 xssルールに違反せずにこれを行う方法はありますか?

17
Micah

クロスサイトスクリプティングの制限がなければ、これでうまくいくはずです。残念ながら、これらの制限に違反せずにURLを取得する方法を知りません。

<html>
    <head>
        <script type="text/javascript">
            function GetIFrameUrl()
            {
                alert('url = ' + document.frames['frame1'].location.href);
            }
        </script>
    </head>
    <body>
        <a href="#" onclick="GetIFrameUrl();">Find the iFrame URL</a>
        <iframe name="frame1" src="http://www.google.com" width="100%" height="400"></iframe>
    </body>
</html>
9
joshuapoehls

JQueryを使用してiframeの場所を取得するには:

alert( $('iframeId').contents().get(0).location.href );
36
user237119

あなたは簡単にそれをバニラjsで行うことができます。

  • 特定の名前、ID、クラスなどの要素のドキュメントをクエリします
  • その要素の属性のソースを取得します

     //Get by Id
     var frame_src = document.getElementById('myIframe').src
     //Get by tag name - get the first
     var frame_src = document.getElementsByName('frmExternal')[0].src
     //Alert 
     alert(frame_src)
    
4
raam86
  <script type="text/javascript"> // if window open in iframe then redirect to main site
         if(window.top.location != window.self.location)
         {
            alert(window.self.location);
            // top.window.location.href = window.self.location;
         }
    </script>
0
sandeep kumar