大家帮忙看看 汉字转首字母的 能帮忙专成 可支持火狐的 么\.

wmyasw 2010-10-19 03:02:38
求大虾帮忙 看下着个javaScript 汉字转拼音手字母的 代码 用什么 转码 或者算法 让这段代码同时支持IE 和 火狐浏览器 现在这段代码只支持 IE 那位大虾能帮忙 给提供个代码 或者 什么算法 解决下这个问题



<script language="javascript" type="text/javascript">
function getPYCode(str) {
var result = "";
for (var i = 0; i < str.length; i++) {
result += getPY(str.charAt(i).toString())
}
document.getElementById("lblResult").innerHTML = result
}
function getPY(s) {
if (s != "") {
execScript("tmp=asc(\"" + s + "\")", "vbscript");
tmp = 65536 + tmp;
var py = "";
if (tmp >= 45217 && tmp <= 45252) {
py = "A"
} else if (tmp >= 45253 && tmp <= 45760) {
py = "B"
} else if (tmp >= 45761 && tmp <= 46317) {
py = "C"
} else if (tmp >= 46318 && tmp <= 46825) {
py = "D"
} else if (tmp >= 46826 && tmp <= 47009) {
py = "E"
} else if (tmp >= 47010 && tmp <= 47296) {
py = "F"
} else if ((tmp >= 47297 && tmp <= 47613) || (tmp == 63193)) {
py = "G"
} else if (tmp >= 47614 && tmp <= 48118) {
py = "H"
} else if (tmp >= 48119 && tmp <= 49061) {
py = "J"
} else if (tmp >= 49062 && tmp <= 49323) {
py = "K"
} else if (tmp >= 49324 && tmp <= 49895) {
py = "L"
} else if (tmp >= 49896 && tmp <= 50370) {
py = "M"
} else if (tmp >= 50371 && tmp <= 50613) {
py = "N"
} else if (tmp >= 50614 && tmp <= 50621) {
py = "O"
} else if (tmp >= 50622 && tmp <= 50905) {
py = "P"
} else if (tmp >= 50906 && tmp <= 51386) {
py = "Q"
} else if (tmp >= 51387 && tmp <= 51445) {
py = "R"
} else if (tmp >= 51446 && tmp <= 52217) {
py = "S"
} else if (tmp >= 52218 && tmp <= 52697) {
py = "T"
} else if (tmp >= 52698 && tmp <= 52979) {
py = "W"
} else if (tmp >= 52980 && tmp <= 53688) {
py = "X"
} else if (tmp >= 53689 && tmp <= 54480) {
py = "Y"
} else if (tmp >= 54481 && tmp <= 62289) {
py = "Z"
} else {
py = s.charAt(0)
}
return py
}
}
</script>

HTML: <input type="text" onkeydown="getPYCode(this.value)" onkeyup="getPYCode(this.value)" />

<label id="lblResult" style="color:Red"></label>
...全文
51 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
羊茂林 2012-04-22
因为使用了微软的vbscript,只有ie支持vbscript
代码中有这么一行
execScript("tmp=asc(\"" + s + "\")", "vbscript");


回复
羊茂林 2012-04-22
因为使用了微软的vbscript,只有ie支持vbscript
代码中有这么一行
execScript("tmp=asc(\"" + s + "\")", "vbscript");
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-19 03:02
社区公告
暂无公告