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.