Dare un nome di proprietà per l'elemento iframe. Ora è possibile fare riferimento in questo modo:
window.name_of_iframe
tuo iframe non può avere jQuery così, con traslazione standard è un modo più sicuro
iframe_body = window.name_of_iframe.document.getElementsByTagName("body")[0];
Questo sarà l'elemento del corpo nel iframe. Questo è comunque utilizzabile da jQuery sulla pagina host, in modo da:
$(window.name_of_iframe.document.getElementsByTagName("body")[0]);
è il vostro involucro jQuery per l'elemento del corpo del iframe.
Fare attenzione a fare questo solo se l'iframe viene caricato:
$("iframe[name=name_of_iframe]").load(function() {
var iframe_body = window.name_of_iframe.document.getElementsByTagName("body")[0];
$(iframe_body).click(function() {
alert("hello, you touched me~");
});
});
UPDATE: testato in IE, e non v'è un comportamento piuttosto starnge con esso. In Firefox devi avvolgerlo in un evento pronto per il documento, ma in IE, deve essere all'esterno, subito dopo l'elemento iframe. Questa versione funziona anche in IE e Firefox.
<iframe name="ifr" src="?if=1"></iframe>
<script type="text/javascript">
var ifr_loaded = false;
$("iframe").load(function() {
$(window.ifr.document.getElementsByTagName("body")[0]).click(function() { alert("s"); });
ifr_loaded = true;
});
$(function() {
if (!ifr_loaded)
{
$("iframe").load(function() {
$(window.ifr.document.getElementsByTagName("body")[0]).click(function() { alert("d"); });
});
}
});
</script>
UPDATE 2: una versione più corta, ma ha il suo svantaggio, che è necessario specificare la fonte del iframe in javascript, ma funziona in tutti i browser che ho provato.
<iframe name="ifr"></iframe>
<script type="text/javascript">
$(function() {
$("iframe").load(function() {
$(window.ifr.document.getElementsByTagName("body")[0]).click(function() { alert("d"); });
}).attr("src","/teszt/v/index.php?if=1");
});
</script>
UPDATE 3: e un modo ancora più semplice per la fine:
<script type="text/javascript">
function init_iframe(obj) {
$(obj.document.getElementsByTagName("body")[0]).click(function() { alert("d"); });
}
</script>
<iframe name="ifr" src="?if=1" onload="init_iframe(window.ifr);"></iframe>
è il documento all'interno del iframe sul tuo dominio? –
sì, stesso dominio in altre directory –
qual è l'errore che IE ti dà? – meo