1

localstorage キーの設定をモーダルクローズダイアログにバインドしようとするのはかなり面倒です。closedialog にフックする方法と、ローカル ストレージ キーを設定する方法について詳しく説明している素晴らしい記事をいくつか見つけました。ただし、私が分類しようとしている正確な問題を詳しく説明している記事は見つかりませんでした。

私が達成しようとしているのは、ブラウザーが localstorage をサポートしていることを最初に確認することです。サポートしている場合は、localstorage キーが既に存在するかどうかを確認し、キーが存在する場合はモーダル オブジェクトを DOM から削除し、そうでない場合は localstorage キーをユーザーがモーダルの閉じるダイアログをクリックします。

これが私がこれまでに思いついたものです:

$(document).ready(function() {
  if('localStorage' in window) && window['localStorage'] !== null){
    var key = 'test';
    if(localStorage.getItem(key) !== null){
      $('#mainform').remove('');
    }
    else {
      if $('#mainform).bind('dialogclose', function(event, ui) {
        $('#mainform').localStorage.setItem(key, on);
      }
    }
  }
});​
4

1 に答える 1

0
$(function() {
    $('#mainform').on('dialogclose', function(event, ui) {
        if ('localStorage' in window) {
            if ( localStorage.getItem('test') ){
                $(this).remove();
            } else {
                localStorage.setItem('test', true);
            }
        }
    });
});​

MDNには localStorage のポリフィルがあるため、自動的に Cookie にフォールバックします。

于 2012-12-11T01:31:56.413 に答える