8

jQuery 用の jGrowl プラグイン ( http://stanlemon.net/projects/jgrowl.html#samples ) を使用して、ページにいくつかのメッセージを表示したいと考えています。これを行うには、次のように ScriptManager.RegisterClientScriptBlock メソッドを呼び出します。

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

コードは Firefox/Chrome/Safari で完璧に動作します。ただし、Internet Explorer では通知が表示されず、Javascript エラーも発生しません。

私は Windows 7 で作業しており、Internet Explorer 8 Beta (バージョン 8.0.7000.0) を使用しており、互換モードで同じ「バグ」があります。

どうすればこの問題を解決できますか?

4

3 に答える 3

12

この問題は、IE8 が、DOM に変更を加える前にすべての DOM 要素が読み込まれることを想定しているために発生します。あなたが説明した問題をjGrowlで再現できました。

これを修正するために、ドキュメントの準備ができたら jGrowl が呼び出されるようにスクリプトを修正しました。更新されたコードは次のとおりです。

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), 
     Guid.NewGuid().ToString(),
     "$(function(){$.jGrowl('" + message + "');});", true);
于 2009-05-10T04:56:19.237 に答える
2

ページに追加<form runat="server" id="form1">します。それが動作します...

于 2011-01-04T08:41:11.770 に答える
0

間違っていなければ、これをクライアント側のページに追加する必要があると思います。

<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>

詳細については、こちらをご覧ください

于 2012-05-31T03:16:49.857 に答える