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?
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>
Pour obtenir l'emplacement de l'iframe à l'aide de jQuery:
alert( $('iframeId').contents().get(0).location.href );
Vous pouvez facilement le faire avec Vanilla js.
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)
<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>