|
那个下不了也没什么,我重新开发了一个网页输入框,在输入上更合理了。 如果下载到本地,运行时需要允许阻止的内容… 如果直接在线打开,即可使用。 修改版本功能相对强大,但代码没有优化。 在线编辑框还没有做出来。 不要在文本框内按[Esc]键,会清空所有输入。还没设置该键为无效。 krm2ipa.htm 代码如下: <html> <head> <title>坎兰字转写</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <SCRIPT language="javascript"> function py2ipa(s){ seq=s.split("\n"); var toneNumLetter=new Array( 'a1','a2','a3','a4','a5','a6', 'o1','o2','o3','o4','o5','o6', 'e1','e2','e3','e4','e5','e6', 'i1','i2','i3','i4','i5','i6', 'u1','u2','u3','u4','u5','u6', 'A1','A2','A3','A4','A5','A6', 'O1','O2','O3','O4','O5','O6', 'E1','E2','E3','E4','E5','E6', 'I1','I2','I3','I4','I5','I6', 'U1','U2','U3','U4','U5','U6' ); var toneMarkLetter=new Array( 'ā','á','ǎ','ä','â','à', 'ō','ó','ǒ','ö','ô','ò', 'ē','é','ě','ë','ê','è', 'ī','í','ǐ','ï','î','ì', 'ū','ú','ǔ','ü','û','ù', 'Ā','Á','Ă','Ä','Â','À', 'Ō','Ó','Ŏ','Ö','Ô','Ò', 'Ē','É','Ĕ','Ë','Ê','È', 'Ī','Í','Ĭ','Ï','Î','Ì', 'Ū','Ú','Ŭ','Ü','Û','Ù' ); var letters=new Array('a','e','i','o','u','A','E','I','O','U'); //因难于定位第一元音,正则时不再匹配声母,而从元音开始匹配。 for(i in seq)if(seq.charAt(0)!='#')seq=seq.replace(/[aeiouAEIOU]{1,4}(b|p|d|t|g|k|m|n|gn|ng|r|rm|rn|y|w|h|B|P|D|T|G|K|M|N|GN|NG|R|RM|RN|Y|W|H){0,1}[1-6]/g,function(py){ //寻找要标调的元音字母,并标调...[bcdfghjklmnpqrstvwxyz]*[aeiou]{1,3} var tone=py.slice(-1); py=py.slice(0,-1); for(i in letters)if(py.indexOf(letters)==0){mark=letters;break;}//寻找第一元音 for(i in toneNumLetter)if(toneNumLetter==mark+tone){return py.replace(mark,toneMarkLetter);} return py+tone; }); return seq.join('\n'); } function refresh_output(){ document.getElementById("out").value=py2ipa(document.getElementById("seq").value); } /*//尚未实现光标定位,且输入框变动会导致结果框只得到输入框的转换结果,故不允许直接编辑 function out_output(){ document.getElementById("out").value=py2ipa(document.getElementById("out").value); } */ function CopyAll(T){//复制结果框内全部内容 T.focus(); //使文本框得到焦点 T.select(); //把文本框中的内容全选 if (document.all){ therange=T.createTextRange(); therange.execCommand("Copy"); //复制 } }
</SCRIPT> <style type="text/css"> textarea{ font-size: 15px; font-weight:normal; color: #000000; background-color: #E4F4FD; font-family  ucida Sans Unicode,Arial,华文彩云;> } </style> </head> <body onLoad="convert.seq.focus()"><!--表单名.对象名.焦点()使在刷新时仍可获得焦点--> <form id="convert" name="convert" method="POST" target="in" onFocus="seq.focus"> <p>请输入字母+数字(1-6): <input type="button" id="test" onclick="seq.value='不知从谁起,众人成烦悲就需要然后也爱自个说“哈素”。\r\n Mi4 zee6 au1 fang3la4 tau1,jogn5wern4 pan4 rab5 beng2 xi4 cau2 day3 qia6 ya4 gai6 kar3 nau4 “har2su2”.\r\n建议省略第4调符:\r\n Mi zee6 au1 fang3la tau1,jogn5wern pan rab5 beng2 xi cau2 day3 qia6 ya gai6 kar3 nau “har2su2”.';refresh_output();" value="示例" /> <INPUT TYPE="BUTTON" VALUE="复制转换结果" onclick="CopyAll(out)" ><br> <center> <textarea id="seq" name="seq" rows=6 cols=130 onKeyup="refresh_output()" onFocus="seq.focus"></textarea><br> <textarea id="out" name="out" rows=28 cols=130 onFocus="seq.focus" readonly="readonly"></textarea><br> </center> </form> </body> </html>
|