Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    doppia esecuzione script con onload

    Ciao a tutti anche oggi non riesco a venire a capo di un problema di javascript...
    Questa volta il problema è dovuto all'evento onload che una volta dichiarato viene sempre rieseguito.... MALEDETTO

    Posto un po di codice:
    codice:
    function submitMessage(message, roomID){
    	mexIframe = document.getElementById('mexSender');
    	if(mexIframe)
    	{
    		mexIframe.src="../chat.php?module=senderPage";
    		mexIframe.onload = function()
    		{
    			new send(message, roomID);
    		};
    	}
    	function send(msg, roomID)
    	{
    		mexIframe.contentWindow.document.getElementById('msgTextInputBox').innerHTML  = 'ciao';
    		mexIframe.contentWindow.document.mexPackage.action = 'chat.php?act=sendMessage';
    		mexIframe.contentWindow.document.mexPackage.submit();
    	}
    }
    Allora il problema è il seguente...
    Ho un iframe con un form per inviare i messaggi, allora carico la pagina che contiene il form, attendo quando è completamente caricata, poi metto i dati all'interno del form, infine ne faccio l'invio e questo va tutto bene. Il problema è che una volta inviato l' iframe fa il refresh e l'evento onload riparte e mi riesegue il codice di invio... come posso utilizzare l'onload solo una volta???

    Grazie in anticipo dell'aiuto =)

  2. #2
    posto il codice fixato per chi si trova con il mio problema
    codice:
    function submitMessage(message, roomID){
    	mexIframe = document.getElementById('mexSender');
    	ck = true;
    	if(mexIframe)
    	{
    		mexIframe.src="../chat.php?module=senderPage";
    		mexIframe.onload = function()
    		{
    			if(ck == true)
    			{
    				ck = false;
    				new send(message, roomID);
    			}
    		}
    	}
    	function send(msg, roomID)
    	{
    		//carico i dati nei form e spedisco il messaggio
    		mexIframe.contentWindow.document.getElementById('roomIdBox').innerHTML  = roomID;
    		mexIframe.contentWindow.document.getElementById('msgTextInputBox').innerHTML  = msg;
    		mexIframe.contentWindow.document.mexPackage.action = 'chat.php?act=sendMessage';
    		mexIframe.contentWindow.document.mexPackage.submit();
    	}
    }

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.