残業プログラマの雑記 RSSフィード

2006-09-20 ちょっぴりレトロな思い出に・・

[] POSTでSubmitをやる。

var frm = new postSubmit();
frm.add('hoge', 'moge');
frm.submit(url, target_frame);

みたいにして使う。

function postSubmit() {
    this.frmObject = document.createElement("form");
    this.frmObject.method = "get";
    
    
    this.add = function(elementname, elementvalue) {
       var input = document.createElement("input");
	     input.type = "hidden";
	     input.name = elementname;
	     input.value = elementvalue;
       this.frmObject.appendChild(input);
       this.frmObject.method = "post";
    };
    
    this.submit = function(url, targetFrame) {
      try {
        if (targetFrame) {
          this.frmObject.target = targetFrame;
        }
      } catch (e) { }
      
      try {
        if (url) {
          this.frmObject.action = url;
          document.body.appendChild(this.frmObject);
          this.frmObject.submit();
          return true;
        } else { return false; }
      } catch (e) {
         return false;
      }
    };
};

■ 2008/12/01 追記

JavaScriptFLASH等から呼び出して使用した場合は、POST送信時のエンコーディングHTMLエンコードに依存します。

エンコードが期待どおりの方式にならない場合はdocument.bodyが所属するHTMLエンコードを確認してください。

※もちろん、全てのブラウザがそのように動作する保証はありませんので全ての環境で完動する必要があるなら対策は立ててください。

■ 2009/02/02 追記

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/zan-gyo/20060920/1158731982