Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    modif. innerHTML di una popup dalla madre

    Ho uno script in una finestra "madre" che apre una popup col più classico dei window open.
    La pagina html che viene aperta nella popup ha al suo interno un layer DIV del quale (sempre dallo script nella mia finestra madre) VORREI cambiare il contenuto testuale...

    faccio così:
    mypopup = window.open(pagina html con tutti i suoi parametri)

    ora come posso fare riferimento all'oggetto document di mypopup per poterne cambiare l'innerHTML?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ti faccio un esempio
    codice:
    <HTML>
    <HEAD>
    <script language="javascript">
    var pp=null;
    function ApriPop(pagina){
    	pp=window.open(pagina);
    	pp.focus();
    }
    </script>
    </HEAD>
    <BODY>
    apri
    
    
    <a href="javascript:if(pp)if(!pp.closed)pp.document.getElementById('NomeLayer').innerHTML=new Date()+'
    scritto da opener';void(0);">scrivi nella popup</a>
    </BODY>
    </HTML>
    e la pagina popup.htm deve contenere un layer con id="NomeLayer"

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    ciao willy
    ho fatto questo

    <html><head><script language='javascript'>
    <!--//
    myFloater = window.open('pagina.htm','myWindow','scrollbars=no ,status=no,width=200,height=100')

    function incrementale(runOnce) {
    if (runOnce == 1) {
    myFloater.document.getElementById("pippo").innerHT ML = "<font color=#000000>ATTENDERE PREGO....</font>" ;
    } else {
    myFloater.document.getElementById("pippo").innerHT ML = "<font color=#000000>" + runOnce +"</font>";
    }
    }
    //-->
    </script>
    </head>

    <body>
    <%
    Dim counter
    counter = 0
    giro = 10
    splitVal = 1000
    for i = 1 to 3000
    if (i mod splitVal) = 0 then
    if counter = 0 then
    response.write "<script>incrementale(1)</script>"
    counter = 999
    else
    response.write "<script>incrementale(" & giro & ")</script>"
    end if
    end if
    giro = giro + 1
    next
    response.write "<script>incrementale('finito')</script>"
    %></body></html>
    e nella pagina.html c'è il layer pippo
    ma nono fa assolutamente un tubero: apre la pagina e resta vuota
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    beh... io ho provato il tuo codice e funziona.
    nella popup si vede la scritta "finito"
    le scritte prima non faccio in tempo a vederle perché sono 3 e va veloce
    codice:
    <script>incrementale(1)</script>
    <script>incrementale(2009)</script>
    <script>incrementale(3009)</script>
    <script>incrementale('finito')</script>
    ho commentato un po' di codice per far andare tutto il ciclo for
    codice:
    <%
    Response.Buffer=0
    %><html><head>
    <script language='javascript'> 
    <!--// 
    var myFloater = window.open('popup.htm','myWindow','scrollbars=no,status=no,width=200,height=100') 
    
    function incrementale(runOnce) { 
      if (runOnce == 1) { 
        myFloater.document.getElementById("pippo").innerHTML = "<font color=#000000>ATTENDERE PREGO....</font>" ; 
      } else { 
        myFloater.document.getElementById("pippo").innerHTML = "<font color=#000000>" + runOnce +"</font>"; 
      } 
    } 
    //--> 
    </script> 
    </head> 
    
    <body> 
    <% 
    Dim counter 
    counter = 0 
    giro = 10 
    splitVal = 1000 
    for i = 1 to 3000 
    '	if (i mod splitVal) = 0 then 
    '		if counter = 0 then 
    '			response.write "<script>incrementale(1)</script>" 
    '			counter = 999 
    '		else 
    			response.write "<script>incrementale(" & giro & ")</script>" 
    '		end if 
    '	end if 
    	giro = giro + 1 
    next 
    response.write "<script>incrementale('finito')</script>" 
    %></body></html>
    si vedono i numeri correre

    p.s.
    se non metti Response.Buffer=0 tutto il codice della pagina verrà mandato al client quando l'asp avrà finito di lavorare, perciò vedrai solo la scritta finito

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    perfect
    griaze mlile wlliy
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.