以下をクリックして選択状態にして、Google Chrome のブックマークバーへドラッグすると、ブックマークレットとしていつでも実行できるようになります。( タイトルは編集で変更してください )
▲ このテキストを Google Chrome のアドレスへ書き込むだけで簡易的なテキストエディタになり、ローカルへ SHIFT_JIS で保存する事ができ、既存のテキスト( SHIFT_JIS と Unicode と UTF8:BOMあり )を読み込む事ができます。 ▼ もちろん、通常のWEB ページ上で使用する事もできます
以下が【保存用】のテスト用ソースコードです。( 改行コードが CRLF になるように処理しています )
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js"></script> <script src="https://winofsql.jp/js/encoding.js"></script> <script src="https://winofsql.jp/js/save-sjis.js"></script> <script> $( function(){ $("#save-action").on("click", function(){ // テキストエリアのテキストを jQuery で取得 var text = $("#save-text").val(); // lf のみを crlf に変換 text = text.replace(/\n/g, '\r\n'); // ローカルに保存する save_sjis( "save-sjis.txt", text ); }); }); </script> <div><input type="button" id="save-action" value="Save as Shift_JIS"></div> <textarea id="save-text" style='width:400px;height:100px;'></textarea>
▼ save-sjis.js の内容です
var load_save_file_name = null; var str2array = function(str) { var array = [],i,il=str.length; for(i=0;i<il;i++) array.push(str.charCodeAt(i)); return array; }; function save_sjis( filename, str ) { var array = str2array( str ); var sjis_array = Encoding.convert(array, "SJIS", "UNICODE"); var sjis_data = new Uint8Array(sjis_array); if ( load_save_file_name != null ) { filename = load_save_file_name; } saveAs( new Blob( [sjis_data] , {type: "text/plain;charset=shift_jis"} ) , filename ); } function load_sjis( event, target ) { var file = event.target.files[0]; load_save_file_name = file.name; var reader = new FileReader(); reader.onload = function(event) { target.value = event.target.result; }; reader.readAsText(file,"shift_jis"); }
▼ 読込みのサンプルは以下のようになります
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://winofsql.jp/js/save-sjis.js"></script> <script> $( function(){ $("#get-text").on("change", function( event ){ load_sjis( event, $("#save-text").get(0) ); }); }); </script> <div><input type="file" id="get-text"></div> <textarea id="save-text" style='width:400px;height:100px;'></textarea>