У меня есть JavaScript, который показывает уведомление, если в ASP.NET существует значение Session
. Это, вероятно, не самое лучшее решение, которое я учусь сейчас, но вот код:JavaScript и кнопка назад/вперед браузера
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Session["Alert"] != null)
{
Page.ClientScript.RegisterStartupScript(GetType(), "alert", Session["Alert"].ToString());
Session["Alert"] = null;
}
}
}
Session["Alert"]
имеет функцию JS, которая показывает уведомление:
Session["Alert"] = "showAlert('test')";
function showAlert(msg) {
alert(msg);
}
Если это было присвоено значение, код запускается успешно и отображается уведомление. Нажатие кнопки «Назад» браузера и последующая кнопка снова показывают предупреждение, потому что страница не проходит через свой жизненный цикл.
Как я могу предотвратить отображение предупреждения более одного раза? Я попытался добавить глобальную переменную JavaScript, например var alertShown = false;
, и проверить ее в функции showAlert
, но это не сработает.
Есть ли кросс-браузерный способ, которым я мог бы обойти эту проблему?
Благодарим за информацию. Я думаю, что печенье - это путь. Я посмотрю, как получить/установить файлы cookie с помощью JS. – user982119