Ошибка выполнения Microsoft JScript: невозможно получить значение свойства 'radalert': объект имеет значение null или не определен IE8

Я вызываю RadAlert через серверный Java-скрипт в коде файла приложения ASP.NET. Этот RadAlert отлично работает с IE7, IE9, Chrome и Firefox, но IE8 выдает исключение «Ошибка времени выполнения Microsoft JScript: невозможно получить значение свойства «radalert»: объект имеет значение null или не определен». Может ли кто-нибудь сказать мне, как я могу решить эту проблему. Ниже приведен код

string dialogMessage = "Record " + Session["SavedRecordID"].ToString() + " Saved Successfully";
string radalertscript = "<script language='javascript'> window.onload = function() {var oWnd = radalert('" + dialogMessage + "', 400, 140, 'Saved'); window.setTimeout(function () { oWnd.Close(); }, 3000);} </script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript);

Спасибо.


person Learning Curve    schedule 04.01.2013    source источник
comment
Это локально или в приложении, которое вы развернули?   -  person Brian Mains    schedule 04.01.2013
comment
это на моей локальной машине   -  person Learning Curve    schedule 04.01.2013
comment
Хорошо, вполне возможно, что вы столкнетесь с этим во всех браузерах при развертывании, потому что это может быть проблема времени.   -  person Brian Mains    schedule 04.01.2013


Ответы (1)


Возможно, создание объекта radalert происходит слишком поздно в IE 8. Поскольку компоненты ASP.NET AJAX используют, возможно, другой жизненный цикл, вы также можете попробовать (по крайней мере, чтобы исключить то, что я говорю, является ли реальная проблема) :

Sys.Application.add_load(function(sender, e) {
  var oWnd = radalert('" + dialogMessage + "', 400, 140, 'Saved');
  window.setTimeout(function () { oWnd.Close(); }, 3000);}
});

Вы должны иметь возможность отображать это с сервера, и он работает так же.

person Brian Mains    schedule 04.01.2013
comment
Спасибо за ваш ответ Брайан. Я пробовал этот подход, но получаю ту же ошибку. Это на моей локальной машине. - person Learning Curve; 04.01.2013
comment
Хм... у вас есть RadWindowManager на странице или на главной странице? если просмотреть скрипты, которые загрузились в отладчике Visual Studio, вы видите скрипт для radalert? Это происходит по следующим причинам: 1) что-то вызвало сбой при создании компонента, например, ошибка на странице, или 2) код, использующий radalert, загружается до загрузки определения radalert. - person Brian Mains; 04.01.2013
comment
У меня работает ваш код. Для других, просто чтобы все вы знали, что есть одна дополнительная фигурная скобка, которая остается совершенно незамеченной при работе с кодом позади java-скрипта, поэтому просто удалите ее перед концом кода Брайана. Большое спасибо, Брайан. - person Learning Curve; 04.01.2013