文書をdocument.writeln()に変換する

Yahoo 知恵袋の質問より。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1356725988

作ってみた。
質問に対した回答ではないので返信せず。

IE8で改行=CRLF、\n=LFまたはCRになっているらしく、改行が残る。
しょうがないので、コードでは\r\nを\nに変換する処理を入れている。

split版はjoin()の時に'\n'ではなく''で連結しているのは、endの最後に'\n'が入っているから。

サンプル




コード

<form onsubmit="return false;">
<textarea id="input" rows="20" cols="80"></textarea><br>
<input type="button" onclick="replace_convert();" value="replace_convert">
<input type="button" onclick="split_convert();" value="split_convert"><br>
<textarea id="output" rows="20" cols="80"></textarea>
</form>

<script>
$('input').focus();

function $(id){return document.getElementById(id);}
function replace_convert(){
var start='document.writeln("';
var end='");\n';
var str=$('input').value;
while(str.match(/\n$/))
	str=str.replace(/\n$/,'');
$('output').value=start+str.replace(/"/g, '"').replace(/\n/g, end+start)+end;
$('input').focus();
}

function split_convert(){
var start='document.writeln("';
var end='");\n';
var str=$('input').value;
str=str.replace(/\r\n/,'\n');
while(str.match(/\n$/))
	str=str.replace(/\n$/,'');
var ary=str.split('\n');
for(var i=0;i<ary.length;i++)
 ary[i]=start+ary[i]+end;
$('output').value=ary.join('').replace(/\r/g, '');
$('input').focus();
}
</script>

BACK