0

私はHTAアプリケーションを開発しています。JavaScriptを使用して複数のページ間でフォームデータを(一時的に)保存したい。私は通常PHPWebサーバーをセットアップしますが、会社のポリシーではネットワーク上のWebサーバーを許可していません。

したがって、JScriptまたはその他の手段でデータを渡す必要があります。

XPおよび7のIE6+で動作する必要があります。

HTML5ストレージを調べましたが、IE6、IE7では機能しません。

情報をありがとうございますが、Webサーバーなしで2つのページ間でデータを渡す他の方法はありますか?

4

5 に答える 5

6

こんにちは、sessionStorage / localStorageなどのhtml5ストレージオブジェクトに値を保存しない理由については、Html5StorageDocにアクセスして詳細を確認してください。これを使用すると、中間値を一時的/永続的にローカルに保存し、セッションの値を保存するために値にアクセスできます。

sessionStorage.getItem('label')
sessionStorage.setItem('value', 'label')

またはを使用して値を永続的に保存します

localStorage.getItem('label')
localStorage.setItem('value', 'label')

したがって、html5ストレージオブジェクトを使用して、複数のページ間でフォームデータを(一時的に)保存できます

于 2012-06-27T16:55:52.563 に答える
1

。という名前のActiveXObjectを使用できますFileSystemObjectfso少なくともIE>=5で動作します。以下のコードは、の基本的な使用法を示していますfso

ActiveXObjectの定義:

var fso=new ActiveXObject('Scripting.FileSystemObject');

ファイルの読み取り:

var iStream=fso.OpenTextFile('filePath',1,false);
iStream.ReadAll();
/* or looped iStream.ReadLine() */
iStream.Close();

ファイルの書き込み:

var oStream=fso.OpenTextFile('filePath',2,true);
oStream.WriteLine(/*your_data*/);// This usually is looped according to your data
oStream.Close();

ファイルを削除する:

fso.DeleteFile('filePath'[,read-only]);

オプションのread-only引数を使用すると、読み取り専用ファイルも削除できます(の場合true)。デフォルトでは、この引数はfalseです。

MSDNのFileSystemObject

<!DOCTYPE html>ところで、HTAは、ドキュメントに含める場合、およびドキュメントに含める場合、IE9(およびIE9自体)でHTML5をサポートし<meta http-equiv="x-ua-compatible" content="ie=9">ます。

于 2012-06-28T04:57:30.993 に答える
1

フォームを送信するだけで、次のページ(フォームのaction属性のページ)でその値を取得する必要がある場合は、次のページGETのURLを使用してデータを送信し、そこから読み取ることができます。

フォームを送信すると、URLは次のようになります。

http://mysite.com/submit.html?input1=foo&input2=bar

以下のJS関数を使用してパラメータを読み取ることができます。

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

これが当てはまらず、複数のページにまたがる必要がある場合は、NejiHyugaが提案するように、sessionStorageまたはそれを使用します。localStorage

于 2012-06-27T22:39:32.923 に答える
0

JavaScriptはクライアント側で実行されます。したがって、クライアント側でデータをCookieなどに保存し、必要に応じてサーバーに送信することができます。または、フォーム変数の情報を非表示にします。データを処理するには、サーバー側にスクリプトが必要だと思います。

于 2012-06-27T16:56:20.767 に答える
0

NeijiHyugaがこれに答えましたが、これを確認したい場合は、GitHubにこの目的のために作成したプラグインがあります。

セッションまたはローカルストレージを使用できます。

https://github.com/sebringj/jquery.dumbformstate

HTA、すごい。それはあなたがそこに着いた興味深い雇用主です。

于 2012-06-27T16:58:41.787 に答える