formgatame <概要> formgatame : HTML ファイルのフォームを固める(読み取り専用にする) <書式> Usage : formgatame <html> formgatame <html> <data> Option : --form <formname> --class <classname> --except <name> --except-file <file> Version : Mon Jun 20 15:12:29 JST 2016 Edition : 2 <説明> <html> ファイルの各種 input タグ (button checkbox file image radio reset submit text)、textarea タグ、select タグ、option タグに属性を 挿入すること で読み取り専用にします。各タグに挿入する属性は次の通り。 class="readonly" のクラス名は --class オプションで変更できます。 input type="button" -> disabled="disabled" input type="file" -> disabled="disabled" input type="image" -> disabled="disabled" input type="reset" -> disabled="disabled" input type="submit" -> disabled="disabled" input type="checkbox" -> class="readonly" disabled="disabled" input type="radio" -> class="readonly" disabled="disabled" input type="text" -> readonly="readonly" class="readonly" tabindex="-1" textarea -> readonly="readonly" class="readonly" tabindex="-1" select -> readonly="readonly" class="readonly" tabindex="-1" option -> disabled="disabled" input type="radio"、input type="checkbox" タグは、checked="checked" 属性が付いている時、<input type="hidden" name="name" value="..."/> 形式のタグを直後に追加します。 option タグに selected="selected" 属性が付いている時、disabled 属性 は挿入されません。 <例1> 全タグを readonly にする $ cat html <html><body> <form name="form1"> <input type="button" name="name_button"/> <input type="file" name="name_button"/> <input type="image" name="name_image" /> <input type="reset" name="name_reset"/> <input type="submit" name="name_submit"/> <input type="text" name="name_text" class="abc" value="X"/> <input type="radio" name="name_radio" value="a"/> <input type="radio" name="name_radio" value="b" checked="checked"/> <input type="radio" name="name_radio" value="c"/> <input type="checkbox" name="name_checkbox" onclick="alert('linux!')" value="z" checked="checked"/> <textarea name="name_textarea"> usp laboratoy </textarea> <select name="pulldown1"> <option value="pd1">pd1</option> <option value="pd2" selected="selected">pd2</option> <option value="pd3">pd3</option> </select> </form> </body></html> $ formgatame html <html><body> <form name="form1"> <input type="button" name="name_button" disabled="disabled"/> <input type="file" name="name_button" disabled="disabled"/> <input type="image" name="name_image" disabled="disabled"/> <input type="reset" name="name_reset" disabled="disabled"/> <input type="submit" name="name_submit" disabled="disabled"/> <input type="text" name="name_text" value="X" readonly="readonly" class="readonly abc" tabindex="-1"/> <input type="radio" name="name_radio" class="readonly" value="a" disabled="disabled"/> <input type="radio" name="name_radio" class="readonly" value="b" checked="checked" disabled="disabled"/><input type="hidden" name="name_radio" value="b"/> <input type="radio" name="name_radio" class="readonly" value="c" disabled="disabled"/> <input type="checkbox" name="name_checkbox" onclick="alert('linux!')" class="readonly" value="z" checked="checked" disabled="disabled"/><input type="hidden" name="name_checkbox" value="z"/> <textarea name="name_textarea" readonly="readonly" class="readonly" tabindex="-1"> usp laboratoy </textarea> <select name="pulldown1" readonly="readonly" class="readonly" tabindex="-1"> <option value="pd1" disabled="disabled">pd1</option> <option value="pd2" selected="selected">pd2</option> <option value="pd3" disabled="disabled">pd3</option> </select> </form> </body></html> <例2> 指定タグのみ readonly にする $ cat tag name_text name_tag $ formgatame html tag <html><body> <form name="form1"> <input type="button" name="name_button"/> <input type="file" name="name_button"/> <input type="image" name="name_image" /> <input type="reset" name="name_reset"/> <input type="submit" name="name_submit"/> <input type="text" name="name_text" value="X" readonly="readonly" class="readonly abc" tabindex="-1"/> <input type="radio" name="name_radio" value="a"/> <input type="radio" name="name_radio" value="b" checked="checked"/> <input type="radio" name="name_radio" value="c"/> <input type="checkbox" name="name_checkbox" onclick="alert('linux!')" value="z" checked="checked"/> <textarea name="name_textarea"> usp laboratoy </textarea> <select name="pulldown1"> <option value="pd1">pd1</option> <option value="pd2" selected="selected">pd2</option> <option value="pd3">pd3</option> </select> </form> </body></html> <例3> 指定タグを除いて readonly にする $ formgatame --except name_submit <html><body> <form name="form1"> <input type="button" name="name_button" disabled="disabled"/> <input type="file" name="name_button" disabled="disabled"/> <input type="image" name="name_image" disabled="disabled"/> <input type="reset" name="name_reset" disabled="disabled"/> <input type="submit" name="name_submit"/> <input type="text" name="name_text" value="X" readonly="readonly" class="readonly abc" tabindex="-1"/> <input type="radio" name="name_radio" class="readonly" value="a" disabled="disabled"/> <input type="radio" name="name_radio" class="readonly" value="b" checked="checked" disabled="disabled"/><input type="hidden" name="name_radio" value="b"/> <input type="radio" name="name_radio" class="readonly" value="c" disabled="disabled"/> <input type="checkbox" name="name_checkbox" onclick="alert('linux!')" class="readonly" value="z" checked="checked" disabled="disabled"/><input type="hidden" name="name_checkbox" value="z"/> <textarea name="name_textarea" readonly="readonly" class="readonly" tabindex="-1"> usp laboratoy </textarea> <select name="pulldown1" readonly="readonly" class="readonly" tabindex="-1"> <option value="pd1" disabled="disabled">pd1</option> <option value="pd2" selected="selected">pd2</option> <option value="pd3" disabled="disabled">pd3</option> </select> </form> </body></html> --except name は --except name1 --except name2 ... と複数記述できます。 <例4> --except-file オプションは、ファイル <file> の中に記述されているタ グ名を除いて readonly にします。指定ファイルの形式は特になく、レコー ドおよびフィールドに記述されている値がタグ名として指定されているとみ なします。 $ cat except_name # 横型 submit cancel modoru $ cat except_name # 縦型 submit cancel modoru $ formgatame --except-file except_name html これは、次の記述と同じです。 $ formgatame --except submit --except cancel --except modoru html <備考> 1. class 属性が既存の場合、 class="readonly 既存クラス" と置換します。 tabindex 属性が既存の場合、tabindex="-1" と上書きします。 disabled 属性が既存の場合、disabled="disabled" と上書きします。 2. <data> ファイルは第1フィールドが readonly にする名前と解釈され、 第2フィールド以降は無視されます。 3. <html> は正しい html として記述されている必要があります。例えば、 タグはすべて小文字であり、<タグ /> あるいは、<タグ> </タグ> と 記述される必要があります。