web-dev-qa-db-fra.com

Obtenir la src actuelle d'un Iframe à l'aide de JQuery

J'ai besoin d'être averti chaque fois qu'un utilisateur clique sur un lien situé sur une page d'un iframe n'appartenant pas au même domaine. Je suis conscient des restrictions xss, cependant, tout ce que j'ai besoin de savoir, c'est la page actuellement affichée dans Iframe. Y a-t-il un moyen de faire cela sans violer les règles xss?

17
Micah

Si ce n’est pas le cas pour les restrictions de script entre sites, cela devrait fonctionner. Malheureusement, je ne connais pas de moyen d'obtenir l'URL sans violer ces restrictions.

<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

Pour obtenir l'emplacement de l'iframe à l'aide de jQuery:

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

Vous pouvez facilement le faire avec Vanilla js. 

  • Interroger le document sur un élément portant le nom, l'identifiant, la classe ou autre
  • Obtenir le source pour l'attribut pour cet élément 

     //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