利用ajax制作在线翻译聊天室
作者:baula84 来源:蓝色理想 时间:2007-12-28 21:44:00
前几天同学要我帮他做个国际聊天室,要求能够将聊天的内容自动翻译成多国语言.本来想用worldlink的翻译服务,但是用ajax很难获得结果,后来偶想到用google的翻译服务了,用ajax获取翻译结果.
相关文章:Google发布网页在线翻译小工具
演示页面: www.goodeye.com.cn/login.aspx 大家用个123就可以登陆了
核心代码
function send(){
if(document.getElementById("isTrans").checked){
ajaxsend();
}else{
text=document.getElementById("content").value;
send2DataBase(text);
}
}
function ajaxsend(){
text=encodeURI(document.getElementById("content").value);
var langpair=document.getElementById("langpair").value;
var hl=document.getElementById("hl").value;
var file;
file="123.asp?text="+ text + "&langpair=" + langpair + "&hl=" + hl;
var objXmlHttp=null;
if(window.XMLHttpRequest){
objXmlHttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else
{
return;
}
objXmlHttp.onreadystatechange=function(){
if(objXmlHttp.readystate==4){
var strValue=objXmlHttp.responseText;
if (strValue.length!=0){
try{
if(strValue.indexOf("<div id=result_box dir=ltr>")>0){
var msg=strValue.indexOf("<div id=result_box dir=ltr>")
var msg2=strValue.indexOf("</div></td></tr><tr><td id=submitcell>")
var result=strValue.substring(msg,msg2);
result=result.replace("<div id=result_box dir=ltr>","");
send2DataBase(result)
}
}catch(e){
alert("翻译服务器设置发生改变!");
}
}
else{
}
}
}
objXmlHttp.open ('GET', file, true);
objXmlHttp.send ('');
}
function send2DataBase(txtContent){
if (txtContent == "") return;
var user_to = document.getElementById("userlist").value; //聊天对象
var textcolor = document.getElementById("textcolor").value; //颜色
var expression = document.getElementById("expression").value; //表情
var isPublic = !(document.getElementById("isSecret").checked); //是否密谈
//调用服务器端方法发送消息
ChatRoom.SendMsg(txtContent, user_to, textcolor, expression, isPublic);
//更新聊天内容显示
var div = document.getElementById("chatcontent");
div.innerHTML = ChatRoom.GetNewMsgString().value + div.innerHTML;
//清空输入框
document.getElementById("content").value = "";
}
123.asp源文件
<%@ CODEPAGE=65001 %>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
<%
dim text,langpair,hl
text=trim(request("text"))
langpair=request("langpair")
hl=request("hl")
if text="" and langpair="" and hl="" then
response.write "don't break my heart!"
end if
dim htmls
text=server.Urlencode(text)
dim strUrl:strUrl="http://translate.google.com/translate_t?text="+text+"&langpair="+langpair+"&hl="+hl+"&oe=UTF8"
htmls=getHTTPPage(strUrl)
response.write htmls
function getHTTPPage(url)
dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"UTF-8")
set http=nothing
if err.number<>0 then err.Clear
end function
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
%>
标签:翻译,聊天室,ajax,xmlhttp
0
投稿
猜你喜欢
Ie6不支持max的解决办法
2008-12-31 13:11:00
SQL Server数据库连接查询的种类及其应用
2009-01-06 11:28:00
XML编程实例:用ASP+XML打造留言本
2008-05-04 13:37:00
window.open被浏览器拦截后的自定义提示
2007-11-23 12:31:00
用面包屑来简化多层的tabs
2011-06-16 20:32:54
用ASP实现Google在线文章翻译的功能
2008-10-11 13:55:00
设计和布局之间的思考
2008-10-09 13:06:00
asp的access数据库备份 压缩 恢复及清理数据库函数
2008-10-31 12:36:00
ASP使用MYSQL数据库全攻略
2009-11-08 18:27:00
如何编写一个基于WEB的文件查询系统?
2009-11-08 18:55:00
Javascript的匿名函数
2008-05-07 13:33:00
100%全屏布局设计
2009-05-15 12:24:00
在FLASH中调用ASP的方法
2009-03-09 18:32:00
SQL Server 2005 SSIS技巧:动态目的文件名
2008-12-05 15:47:00
Asp用XMLHTTP实现QQ状态在线查询
2007-10-22 17:46:00
Access中实现case when功能
2009-04-28 13:02:00
解读HTML:命名空间与字符编码
2008-12-10 14:03:00
如何不通过DSN访问SQL Server?
2009-11-11 19:21:00
分析SQL Server中数据库的快照工作原理
2009-01-19 14:03:00
WEB2.0网页制作标准教程(7)CSS学习入门
2007-12-13 13:12:00