Domanda

Voglio usare il plugin jGrowl per jQuery ( http://stanlemon.net/projects/jgrowl .html # samples ) per visualizzare alcuni messaggi su una pagina. Per fare questo, chiamo il metodo ScriptManager.RegisterClientScriptBlock in questo modo:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), Guid.NewGuid().ToString(),
   "$.jGrowl('" + message + "');", true);

Il codice funziona perfettamente in Firefox / Chrome / Safari. Tuttavia in Internet Explorer non vedo la notifica e non visualizzo alcun errore Javascript.

Lavoro su Windows 7 e ho Internet Explorer 8 Beta (versione 8.0.7000.0) e ho lo stesso " bug " in modalità compatibilità.

Come posso risolvere questo problema?

È stato utile?

Soluzione

Questo problema si verifica perché IE8 prevede che tutti gli elementi DOM vengano caricati prima di poter apportare modifiche al DOM. Sono stato in grado di duplicare il problema che hai descritto con jGrowl.

Per risolvere il problema, ho appena modificato il tuo script in modo che la chiamata a jGrowl avvenga quando il documento è pronto. Ecco il codice aggiornato:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), 
     Guid.NewGuid().ToString(),
     "$(function(){$.jGrowl('" + message + "');});", true);

Altri suggerimenti

aggiungi <form runat="server" id="form1"> alla pagina. Funzionerà ...

Se non è sbagliato, penso che tu debba aggiungerlo nella pagina del lato client.

<script language="javascript" type="text/javascript" id="forModalPopUp">
    var prm =  Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(InitializeRequest);
    prm.add_endRequest(EndRequest);
    function InitializeRequest(sender, args) {
    }
    function EndRequest(sender, args) {
    }
</script>

Per maggiori dettagli, dai un'occhiata a this .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top