Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    105

    passaggio dati da iframe a pagina madre

    Ciao a tutti, premetto che è da ben 3 giorni che sono su questa questione (facendo le nottate) provandole di tutte (google, forum vari ecc), ma non so più dove sbattere la testa
    Voi siete l'ultima spiaggia

    Allora inizio postando il primo pezzo di codice che serve solo per capire quello che sto facendo:
    codice:
    -----parte html:
    <body>
    <form name="frmSearch" method="get" action="http://www.google.com/search" target="tempframe">
    <input class="backtableTdTr" name="q" size="25" maxlength="255" value="Search your crack here..." onfocus="this.value=''" onblur="this.value='Search your crack here...'"/>
    cerca
    <input type="checkbox" name="as_sitesearch" checked="checked" />
    </form>
    
    <iframe onload="elsite(this);" name="tempframe" id="findTempframe" class="backtableTdTr" >Your browser does not support iframes. Upgrade it. 
    </iframe>
    </body>
    
    
    --------parte js:
    
    function submitsite(){
    	var tr=document.getElementById('tablesites').getElementsByTagName('tr');
    	
    	document.frmSearch.as_sitesearch.value= tr.item(0).childNodes.item(0).childNodes.item(0).id;
    	document.frmSearch.submit();
    
    }
    e fin qui tutto ok, il problema viene con entrambi i seguenti codici che ho testato, dopo il primo caricamento della pagina web (dove funziona tutto correttamente), poi per le successive volte in cui clicco sul link del codice precedente che fa partire il "submit()" dell iform il comando "erframe.contentDocument" non funziona più e quindi non mi va a leggere innerHTML del frame.

    Ecco il primo tipo di codice:
    codice:
    function elsite(erframe){
    	var aa;
                  alert(erframe);
    	alert(erframe.contentDocument);//il contenuto dell'iframe viene visto al primo caricamento della pagina web, ma poi il contentDocument non funziona più, anche se l'oggetto erframe viene riconosciuto.
    	
    	if(erframe.contentDocument){
    		alert(""+erframe.contentDocument); 
    
    		aa=erframe.contentDocument.body.innerHTML;
    		//alert("prova");
    	}
    	else
    		if(erframe.contentWindow)
    			aa=erframe.contentWindow.document.body.innerHTML;
    		else
    			aa=window.frames[0].document.body.innerHTML;
        alert(aa+"+"); //viene visualizzata la prima volta anche se vuota (perchè ancora in caricamento) ma poi non compare più l'alert.
    }
    ecco il secondo con lo stesso problema, tranne che per il fatto della prima chiamata a caricamento della pagina web, visto che la blocco con la variabile "firstcall" (ovviamente tolgo "onload" dell'iframe che c'è nella parte dell'html).
    codice:
    var firstcall=true;
    onload=function(){
    //--- pezzo dicodice trovato sul web
    var iframe=document.getElementById('crackfindTempframe');
    if (iframe.addEventListener)
    	iframe.addEventListener("load", elsite, false);
    	else if (iframe.attachEvent){
    		iframe.detachEvent("onload", elsite);
    		iframe.attachEvent("onload", elsite);
    }
    firstcall ? firstcall=false : elsite();
    //---
    
    function elsite(){
    	var aa;
                  var iframeEl=document.getElementById('crackfindTempframe');
                  alert(iframeEl);
    	alert(iframeEl.contentDocument);
    	
    	if(iframeEl.contentDocument){
    		alert(""+iframeEl.contentDocument); 
    
    		aa=iframeEl.contentDocument.body.innerHTML;
    		//alert("prova");
    	}
    	else
    		if(iframeEl.contentWindow)
    			aa=iframeEl.contentWindow.document.body.innerHTML;
    		else
    			aa=window.frames[0].document.body.innerHTML;
        alert(aa+"+"); 
    }
    }
    Il tutto l'ho testato solo in locale con firefox e opera visto che sono gli unici 2 browser che non bloccano la chiamata all'iframe in locale.
    Comunque danno entrambi lo stesso problema.

    Qualcuno puoi aiutarmi , please???
    confido nel vostro aiuto grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    quello script potrebbe al limite funzionare se il tuo documento risiedesse nel dominio google.com
    ...cosa improbabile

    dopo l' invio del form non puoi piu' accedere al contenuto di quell' iframe via javascript perche' contiene un documento appartenente ad un altro dominio
    e javascript impedisce il cross domain scripting (o cross site scripting, XSS)

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    105
    ma scusa alla fine l'html è caricata nel mio pc, quindi non vedo perchè non dovrebbe essere accessibile (visto che con un semplice editor o il salvataggio della pagina html lo vedo).
    Quindi sei sicuro che è per quello?

    p.s.: comunque ho modificato il codice mentre tu stavi postando, prova a riguardarlo magari non è come pensavi.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non c'e' nulla da rivedere
    il senso si capisce perfettamente e quello che vorresti fare e' volutamente impedito

    ti invito ad accertartene per conto tuo, le parole chiave da cercare te le ho fornite
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    105
    Quindi se io voglio leggere un file html che è stato caricato nel pc dell'utente non posso giusto?

    Peccato, pensavo che il cross-domain fosse differenze, comunque grazie della spiegazione.

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.