0

ユーザー名とパスワードを入力した後、ユーザーが [ログイン] ボタンをクリックしたときに、Asp.Net Web サイトにトースト通知を表示したいと考えています。ログインに成功すると、ウェルカム トースト通知が表示されます。現在、マスターシートに次のコードがあります。

  $(document).ready(function () {
            setTimeout(function () {
                toastr.options = {
                    closeButton: true,
                    progressBar: true,
                    showMethod: 'slideDown',
                    timeOut: 4000
                };
                toastr.success('Welcome here', 'Welcome to SPSL');

            }, 1300);
        });

しかし、問題は、別のページに移動するたびにこれが表示されることです (これはマスターシートにあるため)。ユーザーがシステムに正常にログインしたときに、これを一度だけ表示するにはどうすればよいですか?

4

1 に答える 1

0

そのため、ログインが成功した後にリダイレクトされるランディングページがあると想定しています。たとえば、login.aspx から default.aspx へ

したがって、default.aspx?firsttime=yes にします。

このようにして、default.aspx を初めて実行したときだけ、余分なクエリ文字列が表示されます。

コードをマスター ページに配置する代わりに、それを default.aspx に配置して、クエリ文字列を確認できます。

例えば:

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
    return "notfound";
    console.log('Query variable %s not found', variable);

}

出典: JavaScript でクエリ文字列を解析する

これで、default.aspx のコードは次のようになります。

 $(document).ready(function() {
     if (getQueryVariable("firsttime") === "yes") {
         setTimeout(function() {
             toastr.options = {
                 closeButton: true,
                 progressBar: true,
                 showMethod: 'slideDown',
                 timeOut: 4000
             };
             toastr.success('Welcome here', 'Welcome to SPSL');

         }, 1300);
     }
 });
于 2015-08-15T05:26:50.823 に答える