Visualizzazione dei risultati da 1 a 8 su 8

Discussione: window.onload

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    window.onload

    Ho questo scenario.

    Ho una pagina server. Inserisco l'evento load lato client nel solito modo:

    <body language="javascript" onload="return window_onload()">
    dove nella funzione window_onload() faccio alcune operazioni.

    Adesso inserisco un controllo dll di cui non ho controllo che aggiunge questo codice:

    function FunzioneControllo()...
    window.onload = FunzioneControllo;


    Il risultato è che l'originaria window_onload() non viene eseguita.

    E' possibile salvare capra e cavoli? :master: o, detto in altri termini, è possibile eseguire le due funzioni?

    Grazie
    Pietro

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Puoi per caso aggiungere un'istruzione alla FunzioneControllo() ?

    E` chiaro che l'istruzione
    window.onload = ...
    sovrascrive quello che tu scrivi nel body()

    Se puoi aggiungere il tuo
    window_onload();
    dentro la funzione inserita dalla DLL, hai risolto.

    In alternativa potresti cercare di sovrascrivere il suo
    window.onload =
    con uno tuo (che faccia partire anche la sua funzione).
    Tutto dipende da dove viene inserito quel codice dalla DLL.

    Non so se sono riuscito a spiegarmi ... forse ho solo fatto confusione. Se non hai capito cerchero` di spiegarmi meglio.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti ringrazio della tua cortesia Ho salvato capra e cavoli inserendo alla fine dell'htm questo codice:

    </HTML>
    <script language="javascript">
    <!--
    window.onload = window_onload;
    //-->
    </script>

    e, nella funzione window_onload, il richiamo alla funzione FunzioneControllo

    Ciao
    Pietro

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se il target sono i browser moderni puoi attaccare al gestore evento onload tutte le istruzioni che vuoi, lasciando addirittura intatto nel codice un window.onload o un <body onload="">

    vedi il terzo punto in questa discussione

    puo' essere molto comodo nel caso in cui si voglia distribuire script ad utenza presumibilmente incapace di lavorare sul codice, perche' non entra in gioco l' esclusivita' trai costrutti che hai sperimentato


    p.s. se interessa so come estenderlo anche ad IE mac

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Xinod
    se il target sono i browser moderni puoi attaccare al gestore evento onload tutte le istruzioni che vuoi, lasciando addirittura intatto nel codice un window.onload o un <body onload="">

    vedi il terzo punto in questa discussione

    puo' essere molto comodo nel caso in cui si voglia distribuire script ad utenza presumibilmente incapace di lavorare sul codice, perche' non entra in gioco l' esclusivita' trai costrutti che hai sperimentato


    p.s. se interessa so come estenderlo anche ad IE mac
    certamente sai come stuzzicare gli utenti Interessante, non ci avevo proprio pensato.

    Allora, questa è una pagina di prova su cui si può ragionare:

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    	<head>
    		<title>a</title>
    		<meta name="vs_defaultClientScript" content="JavaScript">
    		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    		<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    		<meta name="ProgId" content="VisualStudio.HTML">
    		<meta name="Originator" content="Microsoft Visual Studio .NET 7.1">
    	<script id="clientEventHandlersJS" language="javascript">
    <!--
    
    //questa funzione la creo io
    function window_onload() {
    	
    	alert("window_onload");
    }
    
    //-->
    </script>
    </head>
    	<body MS_POSITIONING="FlowLayout" language="javascript" onload="return window_onload()">
    	
    		<script>
    			function funzione_server()
    			{
    				alert("funzione_server");
    			}
    		
    			window.onload = funzione_server;
    			
    		</script>
    	
    	</body>
    </html>
    come vedi, io mi creo la mia funzione window_onload. Inserisco una dll da server che mi sostituisce la mia funzione con la sua, funzione_server.

    Adesso, io posso andare sul sorgente e correggere con criterio. In pratica vorrei sostituire l'istruzione window.onload = funzione_server; con:

    esegui funzione_server()
    esegui vecchia funzione onload (che presumo di non sapere)

    oppure il contrario
    esegui vecchia funzione onload (che presumo di non sapere)
    alla fine esegui mia funzione funzione_server()


    Ti ringrazio ancora
    Pietro

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Bene seguendo i suggerimenti di Xinod ho sperimentato che funziona su IE e su Firefox e su NN7

    sostituisco window.onload = funzione_server; con

    codice:
    			var f = window.onload;
    			window.onload = funzione_server;
    			if(window.attachEvent)
    				window.attachEvent("onload", f);
    			else if (window.addEventListener) window.addEventListener("load", f, false);
    Pietro

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    Se ti interessa, potresti leggerti questa discussione sulla gestione degli eventi:
    http://forum.wedev.it/index.php?act=ST&f=10&t=164&
    forse è un po' datata (non c'era ancora firefox), ma ci sono degli esempi e del codice che potrebbero interessarti (sempre se arrivi a fine lettura )
    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da standard
    Se ti interessa, potresti leggerti questa discussione sulla gestione degli eventi:
    http://forum.wedev.it/index.php?act=ST&f=10&t=164&
    forse è un po' datata (non c'era ancora firefox), ma ci sono degli esempi e del codice che potrebbero interessarti (sempre se arrivi a fine lettura )
    ciauz
    Lo leggerò, ti ringrazio
    Pietro

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 © 2026 vBulletin Solutions, Inc. All rights reserved.