bookmarkletからフォーム送信するためのJavaScript。
GETリクエストであれば文字列連結でURLを作っても可能ですが、POSTリクエストはさすがにform要素を使う必要があったので、そのための手続きを楽に行うためのクラスを作ってみました。
※JavaScriptのオブジェクト指向をまだきちんと理解していないため、変な書き方をしているかも知れません。
function Formlet(url, target, method) { this._form = document.createElement('form'); this._form.action = url; if (target) this._form.target = target; if (method) this._form.method = method; document.body.appendChild(this._form); this.param = function(name, value){ var el = document.createElement('input'); el.type = 'hidden'; el.name = name; el.value = value; this._form.appendChild(el); }; this.submit = function() { this._form.submit(); document.body.removeChild(this._form); }; }
選択テキストをエキサイト翻訳へ送信。
(function(){ var url = 'http://www.excite.co.jp/world/english/'; var origin = (new SelectedTexts).first; var mode = origin.match(/[^\u0000-\u00ff]/) ? 'JAEN' : 'ENJA'; var form = new Formlet(url, '_blank', 'post'); form.param('before', origin); form.param('wb_lp', mode); form.submit(); })(); function Formlet(url, target, method) { ... } function SelectedTexts() { ... }}YukiWiki 2.1.2 (C) 2000-2004 by Hiroshi Yuki.