YoungxjTools/Pinyin/polyphone.html

123 lines
4.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8"/>
<title>带词库识别多音字的汉字转拼音</title>
<link rel="stylesheet" type="text/css" href="simple-input-method/simple-input-method.css">
<style type="text/css">
body{font-family: 'Microsoft Yahei'; font-size: 16px;}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
input[type="text"] {
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 4px;
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
input[type="text"]:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);
}
#test {width: 300px;}
h2 {
background-color: #3199E4;
color: white;
padding: 2px 8px;
border-radius: 5px;
font-size: 30px;
line-height: 1.5;
text-shadow: 1px 1px 1px black;
width: 800px;
}
h2 > span {
color: #B10000;
font-size: 0.8em;
}
#test {margin-top: 10px;}
.loading-tip{color: #00960A;margin-bottom: 10px;}
.container {
width: 1024px;
margin: 20px auto;
}
</style>
</head>
<body>
<div class="container">
<a href="http://blog.haoji.me/pinyinjs.html" target="_blank">返回原文</a>
<a href="http://github.com/sxei/pinyinjs/" target="_blank">github地址</a>
<a href="http://demo.haoji.me/pinyinjs/" target="_blank">返回上一页</a>
<h2>带词库可以识别多音字的汉字转拼音</h2>
<p>说明本页面需要加载900多kb的词库文件所以不太适合web环境这里仅仅是演示效果而已并且由于没有使用分词所以效果也不一定非常好。非要识别多音字的话推荐在服务端完成借助一些分词工具效果会更好比如<a href="https://github.com/fxsjy/jieba">jieba</a>),然后做成接口给前端调用。</p>
<div class="loading-tip">正在加载词库,文件比较大,请耐心等待加载完毕再尝试。</div>
<div>
<span>输出类型:</span>
<label><input type="radio" name="pinyin_type" value="0" checked/>带声调拼音</label>
<label><input type="radio" name="pinyin_type" value="1"/>不带声调拼音</label>
<label><input type="radio" name="pinyin_type" value="2"/>拼音首字母</label>
</div>
<input type="text" id="test" value="小明说长大后要去看长城!" placeholder="请随便输入一些中文"/>
<h3>转换结果:</h3>
<div id="result"></div>
</div>
<script type="text/javascript" src="dict/pinyin_dict_withtone.js"></script>
<script type="text/javascript" src="dict/pinyin_dict_polyphone.js"></script>
<script type="text/javascript" src="pinyinUtil.js"></script>
<script type="text/javascript">
function getPinyin()
{
var value = document.getElementById('test').value;
var type = document.querySelector('[name="pinyin_type"]:checked').value;
var result = '';
if(value)
{
switch(type)
{
case '0': result = pinyinUtil.getPinyin(value, ' ', true, true); break;
case '1': result = pinyinUtil.getPinyin(value, ' ', false, true); break;
case '2': result = pinyinUtil.getFirstLetter(value, true); break;
default: break;
}
}
var html = result;
if(result instanceof Array)
{
html = '<ol>';
result.forEach(function(val)
{
html += '<li>'+val+'</li>';
});
html += '</ol>';
}
document.getElementById('result').innerHTML = html;
}
document.getElementById('test').addEventListener('input', getPinyin);
document.addEventListener('change', function(e)
{
if(e.target.name === 'pinyin_type')
{
getPinyin();
}
});
getPinyin();
document.querySelector('.loading-tip').innerHTML = 'JS加载完毕现在你可以开始打字了';
</script>
</body>
</html>