Ho bisogno di ricevere una notifica ogni volta che un utente fa clic su un link su una pagina in un iframe che non appartiene allo stesso dominio. Sono a conoscenza delle restrizioni xss, tuttavia tutto ciò che devo sapere è che la pagina corrente viene pubblicata nell'Iframe. C'è un modo per farlo senza violare le regole xss?Ottenere l'attuale src di un Iframe usando JQuery
risposta
In caso contrario, le restrizioni di cross-site scripting dovrebbero funzionare. Purtroppo non conosco un modo per ottenere l'URL senza violare queste restrizioni.
<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>
per ottenere la posizione iframe utilizzando jQuery:
alert($('iframeId').contents().get(0).location.href);
questo non funziona per me – knocte
questo funziona solo nel caso di uno stesso dominio - xss sicurezza lo impedisce per domini diversi – Alvin
Nota, se js è in esecuzione * dentro * l'iframe, selezionando l'iframe come quello non funzionerà, ma selezionandolo come "$ ('iframe', window.parent.document)" lo fa. (Assumendo ancora lo stesso dominio.) – neminem
potete facilmente può fare con js vaniglia.
- Query il documento per un elemento con il nome specifico, id, classe o qualunque
Ottenere la fonte per attributo per quell'elemento
//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>
Fa questo viloate XSS regole? – Micah
Sì, lo fa. Non credo che ci sia un modo per fare ciò di cui hai bisogno senza violare le regole. – joshuapoehls
In firefox in firebug tutto ciò che ottengo è document.frames non definito – OZZIE