Form Extractor beta
久しぶりにJavaScriptを書いてみた。あるページを開いているときに、このスクリプトを実行することにより、クリップボードにフォームのHTMLを必要最小限に削ってコピーしてくれる。
function ExtractFormMinimum(form) { var innerhtml = ""; function ExtractinnerHTML(tagname) { var elements = form.getElementsByTagName(tagname); for (var i = 0; i < elements.length; i++) { innerhtml += elements[i].outerHTML; } } ExtractinnerHTML("textarea"); ExtractinnerHTML("input"); ExtractinnerHTML("select"); var newform = form.cloneNode(true); //newform.setAttribute("action", joinPath(location.href, newform.getAttribute("action"))); newform.innerHTML = innerhtml; return newform.outerHTML; } var i = 0; var form; var formhtml; var color = ""; do { try{ form.style.background = color; }catch(e){} try{ form = document.getElementsByTagName("form")[i++]; formhtml = ExtractFormMinimum(form).replace("\n", "").replace("\r", ""); color = form.style.background; form.style.background = "red"; clipboardData.setData("Text", formhtml); } catch(e){ break; } } while (!confirm(formhtml)); try{ form.style.background = color; }catch(e){} alert("Ok!");
実用的には
- javascript:function ExtractFormMinimum(form){var innerhtml="";function ExtractinnerHTML(tagname){var elements=form.getElementsByTagName(tagname);for(var i=0;i
というアドレスへのショートカットを作って、そのアドレスへ移動すればよい。(最後の//ははてなダイアリーの仕様かバグかで後ろに変な文字列がくっつくので、それを無効化させるためw)
実際に実行すると、formタグを検索し、一個ずつ抽出結果を表示していく。必要なのが表示されたら、そのときにOKを押せば、内容がクリップボードにコピーされる。
ごめんなさい。まだいろいろ不完全なので、betaということで。
formのaction属性のパスを絶対URLにしたいけど、それがめんどくさくてできていません。C#ならライブラリあるのに…C#ずっとやってると、ゆとりになってしまうw