Question

Je souhaite utiliser le plug-in jGrowl pour jQuery ( http://stanlemon.net/projects/jgrowl .html # samples ) pour afficher des messages sur une page. Pour ce faire, j'appelle la méthode ScriptManager.RegisterClientScriptBlock comme suit:

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

Le code fonctionne parfaitement dans Firefox / Chrome / Safari. Cependant, dans Internet Explorer, je ne vois pas la notification et je n’obtiens aucune erreur Javascript.

Je travaille sous Windows 7 et j'ai Internet Explorer 8 Bêta (version 8.0.7000.0) et le même " bug " sous Mode de compatibilité.

Comment puis-je résoudre ce problème?

Était-ce utile?

La solution

Ce problème se produit car IE8 s'attend à ce que tous les éléments du DOM soient chargés avant que des modifications ne puissent être apportées au DOM. J'ai pu reproduire le problème que vous avez décrit avec jGrowl.

Pour résoudre ce problème, je viens de modifier votre script afin que l'appel à jGrowl ait lieu une fois le document prêt. Voici le code mis à jour:

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

Autres conseils

ajouter <form runat="server" id="form1"> à la page. Cela fonctionnera ...

Si ce n'est pas faux, je pense que vous devez l'ajouter dans la page côté 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>

Pour plus de détails, consultez cette .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top