<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>拼音</title>
<script src="./pinyin-pro.js"></script>
<style>
.x-pinyin-box{width: 82%;margin: 0 auto;}
.x-pinyin-box .button-groups { width: 100%; height: 60px;border-radius: 5px;
display: flex;flex-wrap: wrap;justify-content: space-around;padding: 10px 0px;}
.x-pinyin-box .button-groups ul{display: block;float: left;margin: 0px;padding-left: 0px;}
.x-pinyin-box .button-groups li{float: left;list-style-type: none;width: 30px;height: 24px;line-height:24px;margin: 2px 5px;}
.x-pinyin-box .button-groups li a{display: inline-block;width: 100%;height: auto;text-align: center;background-color: #ececec;
font-size: 14px;border-radius: 5px;cursor: pointer;}
.x-pinyin-box .button-groups li a:hover{color: #fff;background-color: #0060ce;}
.x-pinyin-box .x-pinyin-content {margin-top: 30px;}
.x-pinyin-box .x-pinyin-content input{height: 36px;line-height: 36px;width: 100%;outline: none;border: 1px solid #ececec;
border-radius: 5px;padding-left: 20px;margin-top: 5px;}
</style>
</head>
<body>
<div class="x-pinyin-box">
<div>特殊字符:</div>
<div id="x-vowel-box" class="button-groups">
</div>
<div class="x-pinyin-content">
<div>拼音:</div>
<input id="pinyinstr" type="text" value="" placeholder="请输入拼音" oninput="inputChange()"/>
</div>
<div id="x-show-box">
<div style="margin: 20px 0 10px;"><input type="checkbox" id="x-pinyin-direction" onchange="checkboxChange()" value="true"/><label>上方(拼音显示位置)</label></div>
<div id="x-show-content"></div>
</div>
</div>
<script>
// 获取参数
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1]
}
}
return ''
}
// 光标函数
function getPositionForTextArea(ctrl) {
let CaretPos = 0;
if (ctrl.selectionStart || ctrl.selectionStart == '0') {// Firefox support
CaretPos = ctrl.selectionStart;
}
return CaretPos;
}
var currentText = decodeURI(getQueryVariable('selectText'));
var pinyinstr = document.getElementById('pinyinstr');
var { pinyin } = pinyinPro;
if (currentText) {
pinyinstr.value = pinyin(currentText);
var showContent = document.getElementById('x-show-content');
showContent.innerHTML = `<span>${currentText} (${pinyinstr.value})</span>`;
} else {
document.getElementById('x-show-box').style.display = 'none';
}
// input change事件
function inputChange(e) {
if (currentText) {
checkboxChange()
}
}
// checkbox change事件
function checkboxChange() {
var curValue = document.getElementById('x-pinyin-direction').checked;
if (curValue) {
showContent.innerHTML = `<span><ruby>${currentText}<rt>${pinyinstr.value}<rt></ruby><span>`;
} else {
showContent.innerHTML = `<span>${currentText} (${pinyinstr.value})</span>`;
}
}
//处理TinyMCE编辑器的事件
window.addEventListener('message', function (event) {
var data = event.data;
var curValue = document.getElementById('x-pinyin-direction').checked
var x_content = ''
if (currentText) {
if (curValue) {
x_content = `<ruby>${currentText}<rt>${pinyinstr.value}<rt></ruby> `;
} else {
x_content = `${currentText} (${pinyinstr.value})`;
}
} else {
x_content = pinyinstr.value;
}
window.parent.postMessage({
mceAction: 'insertContent',
content: x_content
}, '*');
window.parent.postMessage({
mceAction: 'close'
}, '*');
});
const vowelList = [
['a', 'ā', 'á', 'ǎ', 'à'],
['o', 'ō', 'ó', 'ǒ', 'ò'],
['e', 'ē', 'é', 'ě', 'è'],
['i', 'ī', 'í', 'ǐ', 'ì'],
['u', 'ū', 'ú', 'ǔ', 'ù'],
['ü', 'ǖ', 'ǘ', 'ǚ', 'ǜ']
]
var vowelBox = document.getElementById('x-vowel-box');
for (let i = 0; i < vowelList.length; i++) {
var ul = document.createElement('ul');
for (let j = 0; j < vowelList[i].length; j++) {
var li = document.createElement('li')
li.innerHTML = `<a src="javascript:void(0);">${vowelList[i][j]}</a>`;
li.onclick = (function clickFun(e) {
return function () {
let pos = getPositionForTextArea(pinyinstr)
var frontString = pinyinstr.value.substring(0, pos);
var afterString = pinyinstr.value.substring(pos, pinyinstr.value.length);
pinyinstr.value = frontString + e + afterString;
pinyinstr.focus()
pinyinstr.setSelectionRange(pos+1, pos+1) // 设置input光标位置
checkboxChange()
}
})(vowelList[i][j]);
ul.appendChild(li);
}
vowelBox.appendChild(ul);
}
</script>
</body>
</html>
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
pinyin.zip (5个子文件)
pinyin
pinyin.html 5KB
plugin.js 4KB
index.js 23B
plugin.min.js 4KB
pinyin-pro.js 337KB
共 5 条
- 1
资源评论
m0_37373379
- 粉丝: 10
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功