2

特定のページのスクリプトを作成し、既存の Cookie を確認し、存在する場合は指定されたページにリダイレクトする方法は? これまでのところ、このようなものがありますが、何らかの理由ですべてのページで関数をトリガーし続けます(明確にするために、jQueryMobileを使用しています):

$(document).on('pageinit',function(){
  jQuery(function($){
    if ($('body#home').length){
      if($.cookie('usr') && $.cookie('psw')){
        $.mobile.changePage("http://imes.**********.com/userpanel.php");
      }
    }
  });
});

将来、名前とパスワードを Cookie に保存することはありません。このアプローチのセキュリティ上の問題については知っています。ユーザー Cookie からユーザーに一致するように生成されたキーを保存しますが、今のところ、テストの段階ではこれらの Cookie を使用します。

4

2 に答える 2

2

あなたのIDアプローチは本質的に優れていますが、長さのテストは私が信頼していないものです(私はそれについての議論はありません。ただの感覚です)。

そのため、私はこのアプローチを採用します。

$("body#home").on("load", function() {
    // Eat your cookies here.
});

PS
タグに名前を付けても意味がありません。時間がかかるだけです。ブラウザーは CSS セレクター (JS querySelectors もそうだと思いますが、PS はこの仮定に基づいていると思います) を右から左に読み取るため、最初に ID が「home」である 1 つの要素を見つけてから、すべての本文を取得します (この場合、本体は 1 つしかありませんがdiv#home、ページに 100 個の div があると想像してください)、正しいものを選択してください。すべての ID はページに 1 回しか出現しないため、タグに名前を付ける必要はありません。

于 2013-01-24T10:16:44.683 に答える
1

あなたが何を求めているのかよくわかりませんが、特定のページでコードを実行したい場合にのみ、location.pathnameいじってどのページにいるのかを判断できます。

jQuery(function($){
    if ( location.pathname.indexOf( '/home' ) ){
        // ...
    }
});

このアプローチは、DOM ノードを検索するよりも高速です。また、ユーザー名とパスワードは、バックエンド言語のセッションで処理する必要があります

于 2013-01-24T10:09:27.910 に答える