0

javascriptのみですが、送信時に選択されたチェックボックスを保持するフォームを使用して、純粋なHtmlページ(php、asp、サーバー側なし)を構築することは可能ですか?

より具体的には、一部のチェックボックスがクリックされたときに (Excel が数式の計算を行うように) リアルタイムで更新されるテーブルを作成する必要があります。ページを更新するたびに (フォーム送信アクション)、javascript 変数がリセットされるため、チェックボックスの状態を保存する方法が見つかりません。

4

3 に答える 3

3

ここの私の答えから取られた

あなたのソリューションに対する想定される答えは localStorage() です...

これは Javascript に依存しており、完全な解決策ではありませんが、HTML5 の localStorageを使用すると、ユーザーのコンピューターに設定を保存できます。

まず、localStorage() のサポートを検出します。

if (Modernizr.localstorage) { // with Modernizr
if (typeof(localStorage) != 'undefined' ) { // Without Modernizr

次に、サポートされている場合はパラメーターを設定します。

localStorage.setItem("somePreference", "Some Value");

ユーザーがローカルストレージをクリアしていない限り、後でそれを取得します。

var somePreference = localStorage.getItem("somePreference");

クリアしたいときは、次を使用してください:

localStorage.removeItem("somePreference");

サポートされていない (古い) ブラウザーを使用している場合は、[ローカル ストレージ ハック][2] を使用して Flash LSO を悪用できますが、それらは明らかに理想的ではありません。

セッションやクッキーはどうですか?

これらは両方とも、意図的に一時的な保管形態です。Flash LSO でさえ、長期保存には Cookie よりも優れています。

于 2013-08-08T16:13:18.057 に答える
0

複数の選択肢があります

ブラウザ内でローカルに保存します。ユーザーがキャッシュとローカル ストレージをクリアすると、すべてが失われます。

  • JavaScript クッキー

これらはサーバー側であるため、セッションを使用することはできません。ただし、Cookie を使用してデータを保存/取得することはできます。ここを参照してください。

  • すべてを URL にハッキングする

HTML5 のプッシュ状態イベントを使用して URL を変更できます。変更が必要なすべてのイベントに「GET request style」パラメーターを追加します。

<script type="text/javascript">
    var stateObj = { foo: "bar" };
    function change_my_url()
    {
        history.pushState(stateObj, "page 2", "bar.html");
    }
    var link = node.getElementByID('click');
    link.addEventListener('click', change_my_url, false);
</script>

<a href="#" id='click'>Click to change url to bar.html</a>

個人的には、HTML5 ローカル ストレージを使用します。ただし、覚えておいてください - ユーザーがキャッシュで遊んでいる場合、ユーザーが正確なデータを持っているとは言えません。ミッションクリティカルなものについては、サーバー側の言語を使用する必要があります (それが目的です)。

便利なリンク:

于 2013-08-08T15:58:13.037 に答える