popup e innerhtml

3 views
Skip to first unread message

Rodrigo Álvarez Virgós

unread,
Aug 28, 2008, 7:39:51 AM8/28/08
to js-o...@googlegroups.com
Hola, JS-Ovillo

Si abro una ventana emergente:
var newWin = window.open('preview.html', 'preview', ...);

¿por qué no puedo dar un valor al "body" de esa ventana?
newWin.document.body.innerHTML = ...;

:-( A ver si alguien me echa un cable

Un saludo
Rodrigo

Tei

unread,
Aug 28, 2008, 9:49:25 AM8/28/08
to js-o...@googlegroups.com
2008/8/28 Rodrigo Álvarez Virgós <rodri....@gmail.com>:

>
> Hola, JS-Ovillo
>
> Si abro una ventana emergente:
> var newWin = window.open('preview.html', 'preview', ...);
>
> ¿por qué no puedo dar un valor al "body" de esa ventana?
> newWin.document.body.innerHTML = ...;
>

quizas es una violacion de seguridad, hacerlo asi... , aunque quizas
puedes acceder utilizando "top."

a mi este ejemplito me funciona:

<HTML>
<BODY>
<script language="javascript">
function Replace()
{
var cuerpazo = top.cozas.document.body.innerHTML;
top.cozas.document.open("text/html","replace");
top.cozas.document.writeln( cuerpazo + "...is gone (document.open)");
top.cozas.document.close();
}


function Workaround2()
{
var cuerpazo = top.cozas.document.body.innerHTML;
top.cozas.document.body.innerHTML= cuerpazo + "...is gone";
}
</script>

<button onclick= "Replace()">document.open(.., "replace")</button>
<button onclick= "Workaround2()">innerHTML workaround</button>

<iframe name="cozas" id="cozas" src="data:text/html,I AM POWONZOR,
KING OF KINGS!"></iframe>
</BODY>
</HTML>

Esto es un ejemplo adaptado de esta pagina:
http://support.microsoft.com/?scid=kb%3Ben-us%3B318382&x=3&y=13

Rodrigo Álvarez Virgós

unread,
Aug 29, 2008, 4:27:29 AM8/29/08
to js-o...@googlegroups.com
Hola, Tei

Tei escribió:


> 2008/8/28 Rodrigo Álvarez Virgós <rodri....@gmail.com>:
>
>> Hola, JS-Ovillo
>>
>> Si abro una ventana emergente:
>> var newWin = window.open('preview.html', 'preview', ...);
>>
>> ¿por qué no puedo dar un valor al "body" de esa ventana?
>> newWin.document.body.innerHTML = ...;
>>
>>
>
> quizas es una violacion de seguridad, hacerlo asi... ,

Creo que efectivamente es así, porque:
window.setTimeout(function(){newWin.document.body.innerHTML = ...;}, 250);
me ha funcionado.

> aunque quizas
> puedes acceder utilizando "top."
>
> a mi este ejemplito me funciona:
>
> <HTML>
> <BODY>
> <script language="javascript">
> function Replace()
> {
> var cuerpazo = top.cozas.document.body.innerHTML;
> top.cozas.document.open("text/html","replace");
> top.cozas.document.writeln( cuerpazo + "...is gone (document.open)");
> top.cozas.document.close();
> }
>
>
> function Workaround2()
> {
> var cuerpazo = top.cozas.document.body.innerHTML;
> top.cozas.document.body.innerHTML= cuerpazo + "...is gone";
> }
> </script>
>
> <button onclick= "Replace()">document.open(.., "replace")</button>
> <button onclick= "Workaround2()">innerHTML workaround</button>
>
> <iframe name="cozas" id="cozas" src="data:text/html,I AM POWONZOR,
> KING OF KINGS!"></iframe>
> </BODY>
> </HTML>
>
>
>

¡Gracias!

Reply all
Reply to author
Forward
0 new messages