2

ユーザーの Web ブラウザーを「強制的に」更新する方法があるかどうか疑問に思っています。

たとえば、ユーザーが古いバージョンのブラウザーを使用して私のサイトにアクセスした場合、通常は非表示になっているページの領域が表示されます。そして、その表示された領域には、ブラウザーの更新に関する推奨事項と、ユーザーがユーザーのブラウザーの新しいバージョンをダウンロードしたり、現在のバージョンを更新したりできる外部ページへのハイパーリンクが含まれます。

具体的には、次の 2 つの側面について指導が必要です。

  1. ブラウザとそのバージョンを認識する方法、および
  2. ユーザーが現在使用しているブラウザーに固有の非表示領域を表示する方法。(たぶん、一般的なブラウザの種類ごとに領域があるので、関連する領域をどのように表示するかが問題になります。)
4

2 に答える 2

2

私の調査では、小さな JavaScript ベースの通知コンポーネントを提供するこのサイトに出くわしました。

http://browser-update.org/index.html

これはまさに私が探していたものです。

于 2013-04-13T17:46:47.550 に答える
1

たとえば、ActionFilterAttribute でこれを行うことができます。たとえば、次のようになります。

public class WarnAboutOldBrowserAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var request = filterContext.HttpContext.Request;

        //check if it browser warning was already checked
        if (request.Cookies["checked"] != null)
        {
             return;
        }
        //exmaple is for IE 6
        if (request.Browser.Browser.Trim().ToUpperInvariant().EqualsExact("IE") && request.Browser.MajorVersion <= 6)
        {
          filterContext.Controller.ViewData["RequestedUrl"] = request.Url.ToString();

          filterContext.Result = new ViewResult { ViewName = "OldBrowserWarning" };
        }
        //add cookie for caching
        filterContext.HttpContext.Response.AppendCookie(new HttpCookie("checked", "true"));
        }

    }
}

もちろん、ユーザーに情報を表示するには、「OldBrowserWarning」というビューも追加する必要があります。

別の方法は、_Layout.cshtml に警告を追加し、上記のコードで ViewBag に適切なフラグを設定することです。

于 2013-04-06T13:24:55.853 に答える