سؤال

وأريد استخدام jGrowl المساعد لمسج ( http://stanlemon.net/projects/jgrowl . هتمل # عينات ) لعرض بعض الرسائل على الصفحة. للقيام بذلك، وأنا استدعاء الأسلوب ScriptManager.RegisterClientScriptBlock مثل هذا:

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

والرمز يعمل الكمال في فايرفوكس / كروم / سفاري. ولكن في Internet Explorer لا أرى الإخطار وأنا لا أحصل على أي خطأ جافا سكريبت.

وأعمل تحت ويندوز 7 ولدي إنترنت إكسبلورر 8 بيتا (الإصدار 8.0.7000.0) ولدي نفس "علة" في ظل وضع التوافق.

وكيف يمكنني حل هذه المشكلة؟

هل كانت مفيدة؟

المحلول

وتحدث هذه المشكلة بسبب IE8 تتوقع جميع العناصر DOM يتم تحميل قبل التعديلات على DOM يمكن تقديمها. وكنت قادرا على تكرار المشكلة التي وصفها مع jGrowl.

لإصلاحه، وأنا مجرد تعديل السيناريو الخاص بك بحيث يحدث الدعوة إلى jGrowl مرة واحدة في الوثيقة جاهزة. هنا هو رمز تحديث:

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

نصائح أخرى

وإضافة <form runat="server" id="form1"> إلى الصفحة. انها ستعمل ...

إذا لم تكن خاطئة، وأعتقد أن لديك لإضافة هذه الصفحة في جانب العميل.

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

لمزيد من التفاصيل، نلقي نظرة على هذا .

scroll top