ローカルにおいたHTMLでGETパラメータ file://c:\hoge.html?foo=1234
を使用したいと考えています。
しかし、うまくいきません。
*ローカルのfile://~のプロトコルを使って
(IISやApacheを使わないで、ローカルフォルダのHTMLファイルを直接IEで起動して)
これからCGIで開発する予定の画面の遷移を、擬似的にHTMLとJavaScriptで作成して
実際のそのシステムの使用者に説明したいと考えています。
file://ではGETパラメータが使えないことはなんとなくわかったのですが
これに変わるHTML間でパラメータを渡す方法はないものでしょうか。
(あくまでWEBサーバーは立てない状況で実現したいのです。)
フラグメント識別子で代用するのはいかがでしょうか。
http://www.7key.jp/rfc/2396/rfc2396_4.html#li28
file://c:\hoge.html#foo=1234
JavaScriptではlocation.hash
で「#foo=1234」の部分を取得できます。
var param = {}; var pairs = location.hash.slice(1).split('&'); var pair; var i; var I = pairs.length; for (i = 0; i < I; ++i) { pair = pairs[i].split('='); param[pair[0]] = pair[1]; } // paramを使った処理 ...
テキストファイルを作って渡す方法ではいかがでしょうか。
VBScriptを使えば簡単にできますよ。
なるほど。IEからVBScriptでローカルファイルの入出力ができるのですね。
セキュリティ的にだめなのかと思ってました。
フラグメント識別子で代用するのはいかがでしょうか。
http://www.7key.jp/rfc/2396/rfc2396_4.html#li28
file://c:\hoge.html#foo=1234
JavaScriptではlocation.hash
で「#foo=1234」の部分を取得できます。
var param = {}; var pairs = location.hash.slice(1).split('&'); var pair; var i; var I = pairs.length; for (i = 0; i < I; ++i) { pair = pairs[i].split('='); param[pair[0]] = pair[1]; } // paramを使った処理 ...
なるほど!
使えない?
file:///c:/hoge.html?foo=1234
でも、駄目かな?
javascript で取得するのは、location.search だよ。"?foo=1234" という文字列として取得できる。
後、location.hash を使う手もある。
file:///c:/hoge.html#1234
で、location.hash は、"#1234" という文字列を取得できる。
ありがとうございます
プロトコルがhttpじゃないと location.searchに対応したパラメータは対応できないみたいです。
なるほど!