dan una propiedad de nombre para el elemento de marco flotante. Ahora se puede hacer referencia a ella como esto:
window.name_of_iframe
Su marco flotante no puede tener jQuery es así, el uso de desplazamiento estándar es una manera más segura
iframe_body = window.name_of_iframe.document.getElementsByTagName("body")[0];
Este será el elemento del cuerpo en el marco flotante. Esto es sin embargo utilizable por jQuery en la página de acogida, por lo que:
$(window.name_of_iframe.document.getElementsByTagName("body")[0]);
es su envoltorio jQuery para el elemento del cuerpo del marco flotante.
tener cuidado de hacer esto sólo si se carga el iframe:
$("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~");
});
});
ACTUALIZACIÓN: probado en IE, y no es un comportamiento bastante starnge con él. En Firefox debes envolverlo dentro de un evento listo para documentos, pero en IE, tiene que estar afuera, justo después del elemento iframe. Esta versión funciona en IE y Firefox también.
<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>
ACTUALIZACIÓN 2: una versión más corta, pero tiene su inconveniente, que tiene que especificar la fuente del marco flotante en el javascript, pero funciona en todos los navegadores que he probado.
<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>
Actualización 3: Y una manera aún más sencilla para el final:
<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>
Es el documento dentro del marco flotante en su dominio? –
sí, el mismo dominio en el otro directorio –
¿Cuál es el error que IE le ofrece? – meo