Mettere insieme due funzioni

  • Creatore Discussione Creatore Discussione kerkut
  • Data di inizio Data di inizio

kerkut

Nuovo Utente
2 Dic 2017
9
0
1
67
Salve a tutti
Devo inserire un iframe laterale in una pagina e l'iframe deve essere alto quanto la pagina; i CSS non funzionano e quindi utilizzo Javascript:
function adatta(){var hi = document.getElementById('body').clientHeight-140; var fs = document.getElementById('fras'); var fd = document.getElementById('frad'); fs.style.height = hi+'px'; fs.src = '../Colonne/col.htm'; fd.style.height = hi+'px'; fd.src = '../Colonne/col.htm'}
Ma a volte la pagina è lenta nel caricare ed allora ho messo una line di ritardo:
setTimeout(function adatta(), 100)
Quando poi la pagina viene ridimensionata ho aggiunto:
window.addEventListener("resize", adatta);
Ebbene viene eseguita solo una funzione, o la linea di ritardo o la chiamata al ridimensionamento, se elimino una qualsiasi l'altra funziona, insieme non funzionano.

Cosa è possibile fare per farle funzionare tutte e due, ovvero per ridimensionare l'iframe sia con un ritardo all'inizio e a seguito di un ridimensionamento senza ricaricare completamente la pagina:
<body class=body id=body onresize="window.location.reload()">
 
Ciao, questa sintassi è sbagliata:
Codice:
setTimeout(function adatta(), 100)
Il termine "function" serve quando dichiari la funzione ma qui non ti serve dichiararla, lo hai già fatto. Al setTimeout devi solo passarne il riferimento come funzione di callback, esattamente allo stesso modo con cui hai impostato addEventListener:
Codice:
setTimeout(adatta, 100)
 

Discussioni simili