html小工具在线翻译,调用百度API写了一个js翻译小工具

目前还未完成的功能有:textarea高度自适应,移动端与pc端都写了。

效果如图:

bVbjOTB

bVbjOTG

html:

js翻译工具

textarea:disabled{

background-color: #fff;

}

当前翻译语言类型:

英语

  • 英语
  • 汉语
  • 日语
  • 韩语
  • 法语
  • 俄语
  • 德语

翻译

清除

引入md5.js,pc样式:body,html,section,main,header,div,button,ul,li,span,textarea,footer{

margin: 0;padding: 0;

}

body,html,section,main,header,div,button,ul,li,span,textarea,footer{

box-sizing: border-box;

}

body,html,section,main,header,div,button,ul,li,textarea,footer{

display: block;

}

main,.content,.t-header{

position: relative;

margin-left: auto;

margin-right: auto;

}

.lang-panel{

position: absolute;

}

button,textarea{

outline: none;

}

ul,li{

list-style: none;

}

.title,.result {

font-size: 20px;

line-height: 45px;

color: rgb(33, 32, 32,0.99);

}

body{

font: 16px "微软雅黑";

overflow: hidden;

height: 100%;

width: 100%;

background-color: #eee;

}

main{

width: calc(100% - 60px);

height: auto;

border: 1px solid #ddd;

box-shadow: 0 5px 10px rgba(255, 255, 255, 0.16);

background: #efebf2;

border-radius: 15px;

padding: 10px;

margin-top: 10px;

}

main .t-header{

width: 100%;

height: 45px;

border-bottom: 1px solid #f2f2f2;

}

.t-header .title{

text-align: left;

color: #004000;

}

.t-header .result{

text-align: right;

color: #26a9f3;

}

.lang-panel {

width: calc(80% - 20px);

height: 42px;

top: 0;left: 200px;

}

.lang-panel li{

width: 100px;

height: 45px;

line-height: 45px;

text-align: center;

margin-left: 16px;

color: #000000;

float: left;

cursor: pointer;

}

.lang-panel li:hover,.lang-panel li:active{

border-bottom: 1px solid #26a9f3;

color: #26a9f3;

}

main .content{

width: 100%;

height: 400px;

background-color: transparent;

}

.content textarea{

border: 1px solid #ccc;

display: inline-block;

width: 49%;height: 100%;

float: left;

font-size: 18px;

resize: none;

overflow-y: auto;

overflow-x: hidden;

}

.t-footer {

width: 100%;

height: 45px;

}

.t-footer button{

width: 60px;

height: 45px;

color: #000000;

font-size: 16px;

text-align: center;

line-height: 45px;

border: none;

margin-right: 45px;

float: right;

background: transparent;

outline:none;

cursor: pointer;

}

.t-footer button:hover{

color: #26a9f3;

border-bottom: 1px solid #26a9f3;

}

.lang-panel .checked,.t-footer button.checked{

color:#26a9f3;

border-bottom: 1px solid #26a9f3;

}

移动端样式:body,html,section,main,header,div,button,ul,li,span,textarea,footer{

margin: 0;padding: 0;

}

body,html,section,main,header,div,button,ul,li,span,textarea,footer{

-webkit-box-sizing: border-box;

box-sizing: border-box;

}

body,html,section,main,header,div,button,ul,li,textarea,footer{

display: block;

}

main,.content,.t-header{

position: relative;

margin-left: auto;

margin-right: auto;

}

button,textarea{

outline: none;

}

ul,li{

list-style: none;

}

.title,.result {

font-size: 20px;

line-height: 45px;

color: rgb(33, 32, 32,0.99);

}

body{

font: 16px "微软雅黑";

overflow-x: hidden;

overflow-y: auto;

height: 100%;

width: 100%;

background-color: #eee;

}

main{

width: 100%;

height: 100%;

border: 1px solid #ddd;

-webkit-box-shadow: 0 5px 10px rgba(255, 255, 255, 0.16);

box-shadow: 0 5px 10px rgba(255, 255, 255, 0.16);

background: #efebf2;

border-radius: 15px;

padding: 10px;

margin-top: 10px;

}

.t-header{

width: 100%;

min-height: 45px;

}

.more{

position: absolute;

top: 1px;

right: 5px;

font-size: 40px;

color: #26a9f3;

cursor: pointer;

display: none;

}

.t-header .title{

text-align: left;

color: #004000;

}

.t-header .result{

text-align: right;

color: #26a9f3;

}

.lang-panel{

width: 100%;

}

.lang-panel li{

width: 100%;

text-align: center;

color: #000000;

font-size: 25px;

cursor: pointer;

}

.lang-panel li:hover,.lang-panel li:active{

color: #26a9f3;

}

main .content{

width: 100%;

height: 400px;

background-color: transparent;

}

.content textarea{

border: 1px solid #ccc;

display: inline-block;

width: 100%;

height: 200px;

font-size: 18px;

resize: none;

overflow-y: auto;

overflow-x: hidden;

}

.t-footer {

width: 100%;

height: 45px;

}

.t-footer button{

width: calc(50% - 2px);

height: 45px;

color: #000000;

float: left;

font-size: 16px;

text-align: center;

line-height: 45px;

border: none;

background: transparent;

outline:none;

cursor: pointer;

}

.t-footer button:hover{

color: #26a9f3;

border-bottom: 1px solid #26a9f3;

}

.lang-panel .checked,.t-footer button.checked{

color:#26a9f3;

border-bottom: 1px solid #26a9f3;

}

@font-face {font-family: "iconfont";

src: url('iconfont.eot?t=1540120521115'); /* IE9*/

src: url('iconfont.eot?t=1540120521115#iefix') format('embedded-opentype'), /* IE6-IE8 */

url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAPcAAsAAAAABiQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY9CUiFY21hcAAAAYAAAABLAAABcOe7t2NnbHlmAAABzAAAAC0AAAAw51HPw2hlYWQAAAH8AAAALAAAADYTA0UPaGhlYQAAAigAAAAcAAAAJAfeA4NobXR4AAACRAAAAAgAAAAICAAAAGxvY2EAAAJMAAAABgAAAAYAGAAAbWF4cAAAAlQAAAAgAAAAIAEPABhuYW1lAAACdAAAAUUAAAJtPlT+fXBvc3QAAAO8AAAAHQAAAC5udm97eJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkYWCcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByeTX42mbnhfwNDDHMDQwNQmBEkBwD0HQ0JeJxjYGBgZWBgYAZiHSBmYWBgDGFgZAABP6AoI1icmYELLM7CoARWwwISfzb5/38YCeSzgEkGRjaGUcADJmWgPHBYQTADIwCQbwu1AHicY2BmAALmBqYGBmYGdgZuBgZzRVMIFFU0bWBm+MsAwQ2hDWFXQ0MBjR8IxQAAAHicY2BkYGAAYqfCfVXx/DZfGbhZGEDg+qeGk8g0CwNTA5DiYGAC8QA1gQpQeJxjYGRgYG7438AQw8IAAkCSkQEVMAEARwgCawQAAAAEAAAAAAAAAAAYAAAAAQAAAAIADAADAAAAAAACAAAACgAKAAAA/wAAAAAAAHicZY9NTsMwEIVf+gekEqqoYIfkBWIBKP0Rq25YVGr3XXTfpk6bKokjx63UA3AejsAJOALcgDvwSCebNpbH37x5Y08A3OAHHo7fLfeRPVwyO3INF7gXrlN/EG6QX4SbaONVuEX9TdjHM6bCbXRheYPXuGL2hHdhDx18CNdwjU/hOvUv4Qb5W7iJO/wKt9Dx6sI+5l5XuI1HL/bHVi+cXqnlQcWhySKTOb+CmV7vkoWt0uqca1vEJlODoF9JU51pW91T7NdD5yIVWZOqCas6SYzKrdnq0AUb5/JRrxeJHoQm5Vhj/rbGAo5xBYUlDowxQhhkiMro6DtVZvSvsUPCXntWPc3ndFsU1P9zhQEC9M9cU7qy0nk6T4E9XxtSdXQrbsuelDSRXs1JErJCXta2VELqATZlV44RelzRiT8oZ0j/AAlabsgAAAB4nGNgYoAALgbsgImRiZGZgSU3Na+UgQEAChUBzwAAAA==') format('woff'),

url('iconfont.ttf?t=1540120521115') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/

url('iconfont.svg?t=1540120521115#iconfont') format('svg'); /* iOS 4.1- */

}

.iconfont {

font-family:"iconfont" !important;

/* font-size:16px;*/

font-style:normal;

-webkit-font-smoothing: antialiased;

-moz-osx-font-smoothing: grayscale;

}

.menu:before { content: "\e693"; }

js代码:/***************************************************/

/* 功能:一些易用的方法函数的原生JavaScript实现 */

/***************************************************/

/**

* 功能:自定义选择器

* 方法qr():获取元素列表中指定索引的元素

* 方法click():为元素列表中所有的元素都添加一个点击事件

* 参数:CSS的ID、Class和标签选择器

**/

function qr(ident) {

var selector,

sType = ident.slice(0,1),

identTxt = ident.slice(1);

if (/^[#\.]/.test(sType)) {

if (sType == "#") {

selector = document.getElementById(identTxt);

}

else if(sType == ".") {

selector = document.getElementsByClassName(identTxt);

}

}

else {

selector = document.getElementsByTagName(ident);

}

// 给获取到的元素列表内的每一个元素添加一个点击事件

function sclick(callback) {

for(var i = 0; i < selector.length; i++) {

selector[i].index = i;

selector[i].onclick = function() {

callback();

console.log(this.index);

}

}

}

// 获取元素数组内指定索引的元素

function getIndextElement(index) {

return selector[index];

}

return {

eq: getIndextElement,

click: sclick

};

}

/**

* 功能:给尚未生成的元素绑定特定事件的函数

* 参数:1、事件类型;2、选择标识符(标签名或class名);3、需要执行的事件

**/

function onEvent(action,selector,callback){

document.addEventListener(action,function(e){

if(selector==e.target.tagName.toLowerCase() || selector==e.target.className){

callback();

}

});

}

Element.prototype.hasClass = function(classname) {

var classlist = this.classList;

var bool = false;

classlist.forEach(function(ele,idx) {

if(ele == classname) {

bool = true;

}

});

return bool;

}

//如果是移动端

if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){

var link = qr('link').eq(0),more = qr('.more').eq(0),flag = true;

link.href ="./css/indexmobile.css";

qr('.lang-panel').eq(0).style.display = 'none';

more.style.display = 'block';

qr('.more').click(function(){

if(flag){

qr('.lang-panel').eq(0).style.display = 'block';

flag = false;

}else{

qr('.lang-panel').eq(0).style.display = 'none';

flag = true;

}

})

}

/*

* 功能:javascript翻译工具

* 日期:2017/10/26

* 作者:loho

*/

/*变量定义部分*/

var type = qr('.lang-panel').eq(0).children;//获取语言类型标签

var result = qr('.result').eq(0);//获取语言选择后的结果标签

var input = qr('.input').eq(0),//获取输入内容标签

output = qr('.output').eq(0);//获取输出结果标签

var transBtn = qr('.transbtn').eq(0),//获取翻译按钮

clear = qr('.clear').eq(0);//获取清除按钮

var lang = "en",//语言类型

timer = null,//定时器

len = type.length;//语言类型标签的长度

(function () {

function createScript(src) {

//创建一个script标签

var script = document.createElement('script');

//添加src和id属性

script.id = 'scriptSrc';

script.src = src;

//将script标签添加到body页面中

document.body.appendChild(script);

}

function changeType() {

//获取到属性data-type,此时this指向获取的语言类型标签

lang = this.getAttribute('data-type');

this.className = 'checked';

for (var j = 0; j < len; j++) {

if (this !== type[j]) {

type[j].classList.remove('checked');

if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){

qr('.lang-panel').eq(0).style.display = 'none';

}

flag = true;

}

}

//然后将语言类型值赋值给结果标签

result.innerHTML = this.innerHTML;

}

function translate() {

//获取接口

var value = 'http://api.fanyi.baidu.com/api/trans/vip/translate?';

//获取当前时间

var date = Date.now();

//此处拼接接口数据,好转换成jsonp数据格式,实现跨域访问

var str = '20180416000147222' + input.value + date + 'IvlTe9ogsiBHl9Muevzu';

//使用加密算法计算数据

var md5 = MD5(str);

//然后得到的数据

var data = 'q=' + input.value + '&from=auto&to=' + lang + '&appid=20180416000147222' + '&salt=' + date + '&sign=' + md5 + "&callback=callbackName";

//引入src路径

var src = value + data;

//调用创建script标签函数

createScript(src);

}

function init() {

//循环添加点击事件

for (var i = 0; i < len; i++) {

//点击时间就是改变语言类型

type[i].onclick = changeType;

}

//清除按钮点击事件

clear.onclick = function () {

input.value = "";

this.className = 'checked';

transBtn.className = '';

}

//点击翻译

transBtn.onclick = function () {

this.className = 'checked';

clear.className = ''

//如果输入内容为空则返回

if (!input.value) {

return;

}

//获取创建的script标签

var s = document.getElementById('scriptSrc');

//如果script标签已经存在删除了重新创建

if (s) {

s.parentNode.removeChild(s);

translate();

} else {

translate();

}

}

}

init();

})();

//回调函数定义

function callbackName(str) {

// console.log(str);

return output.innerHTML = str.trans_result[0].dst;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端:微信小程序 采用 uni-app 开发框架,uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。 后端:采用 SpringBoot 2 构建后端服务,才 Swagger2 构建 Restful风格接口文档,数据库采用 Mysql ,使用 Mybatis-Plus 做数据访问层。 语音识别和图像识别 采用 百度智能云平台服务。 安装教程 开发需要准备相关的 IDE和 JDK8 开发环境 , 前端开发 uni-app 需要 下载 Hbuilder ,后端开发 需要下载 Eclipse 或 IDEA。 其中的 语音识别和图像识别 功能使用百度智能云平台服务,需要注册登录拥有自己的应用 (有5万次调用 api 的免费使用量),在 后端 afterend 的 uniapp-api 当中的配置文件里面需要进行配置 appid、apikey、secretkey。 数据库准备,创建一个 名称为 garbageSort 的数据库,把跟目录下 garbagesort.sql数据库文件进行导入进去即可。 后端启动:第一步、在 afterend 目录下找到 uniapp-api 模块,把配置文件 application.yml.example 的 example 后缀去掉,命名为 application.yml。第二步、在 application.yml 中配置好 数据库相关信息 和 上述 百度请求 api 管理的配置信息即可。 第三步、运行 UniappApiApplication ,启动后端服务,可以访问 http://localhost:8899/wx/doc.html 查看接文档 前端启动:在 Hbuilder 中打开目录 frontend ,在运行菜单中 点击 运行到小程序模拟器 —> 微信开发者工具,或者 使用 微信开发者工具 打开 forntend -> unpackage -> dist -> dev -> mp-weixin,即可运行微信小程序。(二次开发的时候在 Hbuilder 中修改文件,保存后可以到微信开发者工具看预览效果)
一个牛人提供的GIS源码(很好 下面文字非本人所,文件提到的下载的东西我全部放包里了。 最后的礼物:校园多媒体系统和校园WEBGIS系统 为什么说是最后的礼物,大概是因为我突然想这个blog不更新了。为什么呢?可能是今天晚上喝多了酒,呵呵,原因等下一篇中也许会阐述,同时我会对这个blog的文章等做个总结。其实,这两个东西至少我暂时是不大想放出来的,只是觉得反正这里也不更新了,仅仅将这些东西作为礼物吧,再说毕竟这些东西太过于菜菜了。还是先来介绍下最后的两个礼物吧: 校园多媒体系统: 这个大概是今年过年后做的东西了,是给师弟做毕业设计用的。应该讲这也仅仅是电子地图查询系统的更新而已,没有太大的特色,只是做了些比较花的功能而已。 特色一:系统采用了双重数据库,对于如果无法连接SQL Server数据库的情况将提供备用的ACCESS数据库支持。 特色二:系统采用了实时在线更新的方法对软件进行升级,升级仅仅需要设置好服务端以及更新文件列表等即可。 特色三:界面上有所创新,吸取Google的WEB地图的界面,对部分控制条进行显示和隐藏。可以看我以前的截图,做了个界面,请大家PP http://www.cnblogs.com/Tangf/archive/2006/03/16/351640.html 特色四:简单的加密方式也可以学习下。这个加密方式可以对移植性进行控制。 特色五:移植性强,许多东西没有死,只需要改变设置文件、启动画面文件、地图文件和数据库文件即可成为一套全新的系统。 开发环境:Visual Basic 6.0,MAPX5.02中文版,ACCESS,SQL SERVER 2000,AutodeskExpressViewe3.1、Windows Media Player 9.0等。 下载地址:http://www.cnblogs.com/Files/Tangf/Campus_Multimedia_Infomation_System_Source.rar 压缩包中为源代码和生成的程序,同时还赠送了一个基于SF6的MAPX打包文件以及整个校园的地图文件,提供了开放环境中需要的插件支持文件(System目录下),同时由于文件大小原因,删除了许多Img目录下的图片并且在数据库中删除了部分Img记录(不然会出错),仅保留了1号楼的图片供参考。 相关或参考文章: 电子地图查询系统_v1.0_源代码(VB6+MAPX5) http://www.cnblogs.com/Tangf/archive/2006/02/15/331375.htmlGoogle ┕电子地图查询系统源代码:http://www.cnblogs.com/Files/Tangf/MapSearch_Source.rar 用SetupFactory打包MapX(带打好的包和打包文档以及录像) http://www.cnblogs.com/Tangf/archive/2006/02/05/325842.html ┕打包以及文档和录像:http://www.cnblogs.com/Files/Tangf/Mapx_Pack.rar 再谈MAPX打包以及MAPX的安装 http://www.cnblogs.com/Tangf/archive/2006/05/31/414361.html 校园WEBGIS: 这个应该是05年的时候做的毕业设计,用超图的Supermap IS 2003+SQL Server 2000建立的一个比较的简单的系统,只是玄乎了下就变的有点意思了,甚至也有点学习或者创新的意思。 加上上次发布的论文部分,这样整个系统也算是补全了。原来论文部分请见:校园WebGIS开发与实践(论文部分) http://www.cnblogs.com/Tangf/archive/2006/01/13/316918.html 特色一:提出了地图接口的概念(其实当时的想法是将网络上的所谓企业标注移植到了这个系统上,只是这个功能免费提供给了学校的部门使用)。 特色二:部分搜索功能是通过搜索SQL输出XML来实现。 特色三:系统已经详细到每个楼房楼层的办公室以及办公室内的电话和教师名单、教学楼的班级以及课程表、宿舍的成员组成联系方式等。 特色四:空间数据库和属性数据库通过SQL Server的视图功能实现关联。 开发环境:Supermap Desktop 2003(地图编辑工具),Supermap IS 2003(GIS服务端),ASP+SQL Server 2000(开发语言和数据库环境),IIS 5.0(WEB服务端),AutodeskExpressViewe3.1(Autodesk公司发布的浏览DWF文件的的客户端插件)等。 安装方法请见论文的附录部分,请不要再询问如何安装。 由于当时将每个楼层平面图的CAD数据也同时存入了SQL Server,所以导致数据库文件过于庞大,大概90M多,经过压缩大概21.8M左右。由于文件过大没有地方存放,所以这部分也不提供。所以可能会导致系统功能无法实现。数据库不提供,请不要索取。 下载地址:http://www.cnblogs.com/Files/Tangf/Campus_WebGIS_Source.rar 压缩包中为WEB主程序,以及答辩用的演讲稿。 相关或参考文章: 校园WebGIS开发与实践(论文部分) http://www.cnblogs.com/Tangf/archive/2006/01/13/316918.html ┕校园WEBGIS的论文下载:http://www.cnblogs.com/Files/Tangf/Campus_WebGIS.rar 由于各种原因,压缩包中已经删除了无关紧要的楼层平面图的DWF部分。同时由于文件大小原因,AutodeskExpressViewe3.1程序也没有提供,请从网上下载。 特别说明:两个程序中已经提供了比较完整的数据和代码,可以复制、修改、传播,传播情保证文件完整性,并且包含Readme文件同时注明出处,但禁止用于商业用途。谢谢。 但愿我的礼物能够给您带来一些帮助。 ==================================================================== 公告:Rover's Official Blog停止更新 想了几天,终于决定这么一个公告了。并不是因为些东西太累或者太占时间而停止了更新,也许就如同前文说是因为今天喝多了酒(呵呵,玩笑),也许如同MSN副标题所言:严重的压力和抑郁,强烈的人格分裂和精神分裂,等待崩溃(呵呵,又一个玩笑)。可能是觉得的东西没什么水准,并且也不能时常的更新,加上个人感觉自己技术的下降(呵呵,也许本来就没有什么技术),考虑甚多,终于作了这么个决定:Rover's Official Blog停止更新 同时停止更新的是Rover's GIS Blog,是3snews上面的Blog,不过上面的基本上也都是本站的复制。生活类Blog会不定时更新,停靠在了Space和新浪,由于关系自己暴露隐私等问题,所以本文不详细提供连接地址。从元旦开博到现在也已经八个月的时间了,发了40多篇的随笔和0篇的文章,非常开心能够在博客园作为我的主blog的停靠站,能够让我在这里结识这么多的朋友,并同他们交流,让我学到甚多、收益菲浅,非常的感谢博客园感谢大家。 也许我还会回来,说不定有一天我会发公告说本Blog重新开始更新,很有可能的事情。希望这段日子能够安静些,能够思考更多些,能够明确些方向,能够做出些实质性的东西,能够提高些自身的技术能力。非常的希望,不知道能否实现。 也许我也会偶然的更新一下本日志,大概是在有东西发布或者有好东西同大家分享的情况下吧。不过这篇日志就置顶了吧。 正准备经营的东西,希望能够得到大家的帮助,非常的感谢: www.gpsplayer.cn:GPS玩家。GPS资讯类网站。类似一个简单的新闻系统,加上一些简单的留言板等等功能,可能会添加一些Gmap API开发类的内容。 www.wikish.cn:维基上海。有了点想法和思路,但暂时由于技术能力等原因无法实现。 其他:还有两个玉米没有想好(呵呵)。 由于个人比较自私,所以想法上即使有所创意也不大会和大家分享(请见谅),加上自身没有技术,所以个人基本上是宁烂也不实现或者让别人实现(是有点自私了)。请原谅我的自私,Google是有创意的,但他的技术壁垒是他人所无法逾越的,而我即使有创意也没有任何技术壁垒,所以不讲了。加上大陆地区太多的炮制太另人失望了(去年非常红火的百万首页,在大陆地区做的烂的一塌,只会炮制没有几个是有创意或者在人家创意的基础上增加自己创意的,唉)。 非常的希望大家能够给我意见或者建议,对大家提供的帮助非常的感谢。 如果您对这一段有想法或者其他愿意和我交流,那么请给我mail。谢谢。 我的联系方式和需要注意的地方: E-mail:tfljh@163.com(基本上是每天晚上登陆一次) MSN:tfljh@msn.com(基本上是开机登陆,不过状态一般为忙碌,Mail会不定时登陆) Gmail:tangf2004@gmail.com(基本上是两三天登陆一次,Gtalk则不定时登陆了) QQ:65985498(基本上是每天晚上隐身登陆一次,并且一般在十分钟内关闭) 以后的联系通过E-Mail联系,谢绝一切的及时通讯工具,请尽量不要添加我为好友,包括QQ/MSN/Gtalk,如果您发的Mail足够的诚恳并且也足够的值得聊天的理由,那么我会添加你的。不希望通过聊天的方式来解决问题,聊了半天的问题最后做公安局调查户口的事情了(呵呵,说的严重了),或者说是聊了半天后就无聊了然后再也不聊了,多么的没有意思。我倒还是很愿意花上十分钟的时间来阅读您的Mail并将我知道的所答复给您。当然如果有邮件不回复,那么基本上我是不懂而无法回答或者觉得没有任何答复的价值,请多多的包涵。 以前的部分日志以及提供的下载文件整理: 最后的礼物:校园多媒体系统和校园WEBGIS系统 http://www.cnblogs.com/Tangf/archive/2006/08/05/468257.html ┕校园多媒体系统源代码下载:http://www.cnblogs.com/Files/Tangf/Campus_Multimedia_Infomation_System_Source.rar ┕校园WEBGIS系统源代码下载:http://www.cnblogs.com/Files/Tangf/Campus_WebGIS_Source.rar Google卫星地图的URL计算 http://www.cnblogs.com/Tangf/archive/2006/07/23/457902.html 两点坐标间距离的算法以及验证 http://www.cnblogs.com/Tangf/archive/2006/07/23/457884.html 极索(Gsuo)推出新版地图采用Gmap设计思路 http://www.cnblogs.com/Tangf/archive/2006/07/23/457521.html 浅谈LBS(基于位置的服务) http://www.cnblogs.com/Tangf/archive/2006/07/17/452498.html MapBar地图更新啦 http://www.cnblogs.com/Tangf/archive/2006/07/13/450215.html 推荐一款软件:Global Mapper http://www.cnblogs.com/Tangf/archive/2006/07/11/448411.html 51ditu、清华地图以及Google地图 http://www.cnblogs.com/Tangf/archive/2006/07/02/440953.html 计算最近点和最近线段 http://www.cnblogs.com/Tangf/archive/2006/07/01/440311.html ┕最近点和最近线段算法示例代码(脱离MAPX5,VB6实现):http://www.cnblogs.com/Files/Tangf/neardis_new.rar Garmin Nuvi 350试用手记 http://www.cnblogs.com/Tangf/archive/2006/06/17/428045.html ┕全文下载(供转载专用):http://www.cnblogs.com/Files/Tangf/Nuvi350.rar MapBar中坐标的加密和解密(JS实现) http://www.cnblogs.com/Tangf/archive/2006/06/06/419124.html 发现一个SVG做的地图网站:ChinaQuest http://www.cnblogs.com/Tangf/archive/2006/06/04/417110.html boot.ini文件的修复 http://www.cnblogs.com/Tangf/archive/2006/06/04/416915.html 再谈MAPX打包以及MAPX的安装 http://www.cnblogs.com/Tangf/archive/2006/05/31/414361.html 寻找MapBar的地图切割方法 http://www.cnblogs.com/Tangf/archive/2006/05/28/411397.html ┕我自己切割的Mapbar地图,并且可以在本地运行:http://www.cnblogs.com/Files/Tangf/MapBar_My.rar 已知一点求最近点(问题请教) http://www.cnblogs.com/Tangf/archive/2006/05/28/411182.html ┕求最近点示例代码(基于MAPX5,VB6实现):http://www.cnblogs.com/Files/Tangf/neardis.rar 基于数据库的公交换乘算法(一点思路一点问题) http://www.cnblogs.com/Tangf/archive/2006/05/28/411065.html MapInfo/ArcInfo交流(提问解答,不定时更新) http://www.cnblogs.com/Tangf/archive/2006/05/09/395489.html (收集)Shape转KML工具(更新:Google正式收购SketchUp) http://www.cnblogs.com/Tangf/archive/2006/04/26/386092.html ┕两个SHape转KML工具:http://www.cnblogs.com/Files/Tangf/shape2kml.rar 地图投影 http://www.cnblogs.com/Tangf/archive/2006/04/17/377638.html 容器透明(如PictureBox) http://www.cnblogs.com/Tangf/archive/2006/04/05/367885.html Google地图切割以及类似Google的开源API http://www.cnblogs.com/Tangf/archive/2006/03/29/362110.html 获取字符串中的指定位置的子字符串 http://www.cnblogs.com/Tangf/archive/2006/03/25/358311.html 做了个界面,请大家PP http://www.cnblogs.com/Tangf/archive/2006/03/16/351640.html [存点资料]车载导航电子地图走向标准化 http://www.cnblogs.com/Tangf/archive/2006/03/04/342733.html [ZT]谈谈 wiki 的缺点 http://www.cnblogs.com/Tangf/archive/2006/03/01/340725.html [转贴]Web地图服务:GIS走近你我 http://www.cnblogs.com/Tangf/archive/2006/02/23/336493.html 算我给Google本地和E都市做个广告吧 http://www.cnblogs.com/Tangf/archive/2006/02/18/333076.html 电子地图查询系统_v1.0_源代码(VB6+MAPX5) http://www.cnblogs.com/Tangf/archive/2006/02/15/331375.htmlGoogle ┕电子地图查询系统源代码:http://www.cnblogs.com/Files/Tangf/MapSearch_Source.rar 地图的配色问题(以及MapBar和51ditu) http://www.cnblogs.com/Tangf/archive/2006/02/12/329162.html [分享]上海市样图 http://www.cnblogs.com/Tangf/archive/2006/02/08/327310.html ┕上海市样图:http://www.cnblogs.com/Files/Tangf/Map_SH.rar 用SetupFactory打包MapX(带打好的包和打包文档以及录像) http://www.cnblogs.com/Tangf/archive/2006/02/05/325842.html ┕打包以及文档和录像:http://www.cnblogs.com/Files/Tangf/Mapx_Pack.rar ArcGIS9、MapObject2.2和ArcExplorer2.0连接ArcSDE9.0问题 http://www.cnblogs.com/Tangf/archive/2006/01/26/323698.html MapBar和MapInfo中的比例尺[更新:MapBar比例尺是正确的] http://www.cnblogs.com/Tangf/archive/2006/01/24/322854.html MapBar研究(百度地图中的JS部分) http://www.cnblogs.com/Tangf/archive/2006/01/22/321756.html ┕本地浏览,调用远程图片:http://www.cnblogs.com/Files/Tangf/MapBar_baidu.rar 浅谈WEBGIS运用栅格地图实现原理[更新:Google Maps带来的新型WebGIS设计模式] http://www.cnblogs.com/Tangf/archive/2006/01/14/317327.html 校园WebGIS开发与实践(论文部分) http://www.cnblogs.com/Tangf/archive/2006/01/13/316918.html ┕校园WEBGIS的论文下载:http://www.cnblogs.com/Files/Tangf/Campus_WebGIS.rar MapInfo中按区域分割地图的方法(带MapBasic方法) http://www.cnblogs.com/Tangf/archive/2006/01/13/316363.html MIFtoSHP通用转换工具 http://www.cnblogs.com/Tangf/archive/2006/01/06/312654.html ┕MIFtoSHP通用转换工具:http://www.cnblogs.com/Files/Tangf/MIFtoSHP.rar MIFtoTAB and TABtoMIF(MIF和TAB互转小工具) http://www.cnblogs.com/Tangf/archive/2006/01/01/309375.html ┕MIFandTAB互转工具:http://www.cnblogs.com/Files/Tangf/MIFandTAB.rar 『浪人|努力』唐丰,Rover.Tang 2006.08.05
第1篇 HTML基础   第1章 HTML基础 3   教学录像:22分钟   1.1 HTML的基本概念 4   1.2 HTML发展史 4   1.3 HTML的基本结构 5   1.3.1 HTML文件的编方法 5   1.3.2 文件开始标签<html> 7   1.3.3 文件头部标签<head> 7   1.3.4 文件标题标签<title> 7   1.3.5 文件主体标签<body> 7   1.3.6 编文件的注意事项 8   1.4 编一个HTML文件 8   1.4.1 HTML文件的编方法 8   1.4.2 手工编页面 9   1.4.3 使用可视化软件制作页面 10   1.4.4 使用浏览器浏览HTML文件 14   1.4.5 使用HTML开发的明日图书网 14   1.5 小结 15   1.6 习题 16   第2章 HTML文件基本标记 17   教学录像:44分钟   2.1 HTML头部标记 18   2.2 标题标记<title> 18   2.3 元信息标记<meta> 19   2.3.1 设置页面关键字 19   2.3.2 设置页面描述 20   2.3.3 设置编辑工具 20   2.3.4 设定作者信息 21   2.3.5 限制搜索方式 22   2.3.6 设置网页文字及语言 22   2.3.7 设置网页的定时跳转 23   2.3.8 设定有效期限 24   2.3.9 禁止从缓存中调用 24   2.3.10 删除过期的cookie 25   2.3.11 强制打开新窗口 25   2.3.12 设置网页的过渡效果 26   2.4 基底网址标记<base> 29   2.5 页面的主体标记<body> 30   2.5.1 设置文字颜色——text 31   2.5.2 背景颜色属性——bgcolor 32   2.5.3 背景图像属性——background 32   2.5.4 设置链接文字属性——link 35   2.5.5 设置边距——margin 37   2.6 页面的注释标记 38   2.7 实例演练——创建基本的HTML网页 38   2.8 小结 39   2.9 习题 40   第3章 设计网页文本内容 41   教学录像:29分钟   3.1 标题文字的建立 42   3.1.1 标题文字标记<h> 42   3.1.2 标题文字的对齐方式——align 43   3.2 设置文字格式 44   3.2.1 设置文字字体——face 44   3.2.2 设置字号——size 45   3.2.3 设置文字颜色——color 46   3.2.4 粗体、斜体、下划线——strong、em、u 46   3.2.5 上标与下标——sup、sub 47   3.2.6 设置删除线——strike 48   3.2.7 等宽文字标记——code 49   3.2.8 空格——&nbsp; 49   3.2.9 其他特殊符号 50   3.3 设置段落格式 51   3.3.1 段落标记——p 51   3.3.2 取消文字换行标记——nobr 52   3.3.3 换行标记——br 53   3.3.4 保留原始排版方式标记——pre 53   3.3.5 居中对齐标记——center 54   3.3.6 向右缩进标记——blockquote 55   3.4 水平线标记 56   3.4.1 添加水平线——hr 56   3.4.2 设置水平线的宽度与高度   ——width、height 57   3.4.3 设置水平线的颜色——color 58   3.4.4 设置水平线的对齐方式——align 59   3.4.5 去掉水平线阴影——noshade 60   3.5 其他文字标记 60   3.5.1 文字标注标记——ruby 60   3.5.2 声明变量标记——var 61   3.5.3 忽视HTML标记   ——plaintext、xmp 62   3.6 小结 63   3.7 习题 63   第4章 使用列表 65   教学录像:35分钟   4.1 列表的标记 66   4.2 使用无序列表 66   4.2.1 无序列表标记——ul 66   4.2.2 无序列表的符号类型——type 67   4.3 使用有序列表 69   4.3.1 有序列表标记——ol 69   4.3.2 有序列表的属性——type 70   4.3.3 有序列表的起始数值——start 72   4.4 定义列表标记——dl 73   4.5 菜单列表标记——menu 74   4.6 目录列表——dir 75   4.7 使用嵌套列表 76   4.7.1 定义列表的嵌套 77   4.7.2 无序列表和有序列表的嵌套 78   4.8 小结 79   4.9 习题 80   第5章 超链接 81   教学录像:22分钟   5.1 超链接的基本知识 82   5.1.1 超链接 82   5.1.2 绝对路径 82   5.1.3 相对路径 82   5.2 超链接的建立 83   5.2.1 超链接标记的基本语法 83   5.2.2 建立文本超链接 83   5.2.3 设置超链接的目标窗口 85   5.3 内部链接 87   5.4 书签链接 89   5.4.1 建立书签 89   5.4.2 链接到同一页面的书签 91   5.4.3 链接到不同页面的书签 92   5.5 外部链接 93   5.5.1 通过HTTP协议 94   5.5.2 通过FTP 94   5.5.3 发送E-mail 95   5.5.4 下载文件 96   5.6 其他链接 98   5.6.1 脚本链接 98   5.6.2 空链接 99   5.7 小结 99   5.8 习题 100   第6章 使用图像 101   教学录像:35分钟   6.1 图像的基本格式 102   6.2 添加图像——img 102   6.3 设置图像属性 103   6.3.1 图像高度——height 103   6.3.2 图像宽度——width 104   6.3.3 图像边框——border 105   6.3.4 图像水平间距——hspace 107   6.3.5 图像垂直间距——vspace 108   6.3.6 图像相对于文字基准线的对齐方式   ——align 108   6.3.7 图像的提示文字——alt 110   6.4 图像的超链接 111   6.4.1 设置图像的超链接 111   6.4.2 设置图像热区链接 112   6.5 小结 116   6.6 习题 116   第7章 表格的应用 118   教学录像:48分钟   7.1 创建表格 119   7.1.1 表格的基本构成——table、tr、td 119   7.1.2 表格的标题——caption 120   7.1.3 表格的表头——th 121   7.2 设置表格基本属性 123   7.2.1 表格的宽度——width 123   7.2.2 表格的高度——height 125   7.2.3 表格的对齐方式——align 126   7.3 设置表格的边框 127   7.3.1 表格边框的宽度——border 127   7.3.2 表格边框的颜色——bordercolor 128   7.3.3 表格内框的宽度——cellspacing 130   7.3.4 表格内文字与边框的间距   ——cellpadding 131   7.4 设置表格背景 132   7.4.1 表格的背景颜色——bgcolor 132   7.4.2 表格的背景图像——background 133   7.5 设置表格的行属性 134   7.5.1 高度的控制——height 134   7.5.2 行的边框颜色——bordercolor 135   7.5.3 行的背景颜色——bgcolor、background 136   7.5.4 行文字的水平对齐方式——align 137   7.5.5 行文字的垂直对齐方式——valign 139   7.5.6 表格标题的垂直对齐方式——align 140   7.6 调整单元格属性 141   7.6.1 单元格大小——width、height 141   7.6.2 单元格水平跨度——colspan 142   7.6.3 单元格垂直跨度——rowspan 143   7.6.4 单元格对齐方式——align、valign 144   7.6.5 单元格的背景色 146   7.6.6 单元格的边框颜色——bordercolor 147   7.6.7 单元格的亮边框——bordercolorlight 148   7.6.8 单元格的暗边框——bordercolordark 150   7.6.9 单元格的背景图像——background 151   7.7 表格的结构 152   7.7.1 表格的表头标记——thead 153   7.7.2 表格的表主体标记——tbody 154   7.7.3 表格的表尾标记——tfoot 156   7.8 表格的嵌套 157   7.9 小结 159   7.10 习题 159   第8章 层标记——div 161   教学录像:33分钟   8.1 层 162   8.1.1 层的分类 162   8.1.2 定义数据块 162   8.2 <div>标签 163   8.2.1 <div>标签的简介 163   8.2.2 <div>标签的属性 164   8.2.3 <span>标签与<div>标签 170   8.3 <iframe>标签 172   8.3.1 <iframe>标签的简介 172   8.3.2 <iframe>标签的属性 172   8.4 <layer>标签和<ilayer>标签 174   8.4.1 标签层的使用 175   8.4.2 <layer>标签和<ilayer>标签的区别 176   8.5 应用div制作下拉菜单导航条 176   8.6 小结 179   8.7 习题 179   第9章 编辑表单 181   教学录像:26分钟   9.1 使用表单标签——form 182   9.1.1 处理动作——action 182   9.1.2 表单名称——name 183   9.1.3 传送方法——method 183   9.1.4 编码方式——enctype 184   9.1.5 目标显示方式——target 185   9.2 添加控件 185   9.3 输入类的控件 186   9.3.1 文字字段——text 186   9.3.2 密码域——password 187   9.3.3 单选按钮——radio 188   9.3.4 复选框——checkbox 189   9.3.5 普通按钮——button 190   9.3.6 提交按钮——submit 191   9.3.7 重置按钮——reset 192   9.3.8 图像域——image 193   9.3.9 隐藏域——hidden 195   9.3.10 文件域——file 195   9.4 列表/菜单标记 197   9.5 文本域标记——textarea 198   9.6 id标记 199   9.7 小结 200   9.8 习题 200   第10章 多媒体页面 202   视频讲解:18分钟   10.1 设置滚动文字 203   10.1.1 滚动文字标签——marquee 203   10.1.2 滚动方向属性——direction 203   10.1.3 滚动方式属性——behavior 204   10.1.4 滚动速度属性——scrollamount 205   10.1.5 滚动延迟属性——scrolldelay 206   10.1.6 滚动循环属性——loop 207   10.1.7 滚动范围属性——width、height 208   10.1.8 滚动背景颜色属性——bgcolor 209   10.1.9 滚动空间属性——hspace、vspace 209   10.2 添加背景音乐 211   10.2.1 设置背景音乐——bgsound 211   10.2.2 设置循环播放次数——loop 212   10.3 添加多媒体文件 213   10.3.1 添加多媒体文件标记——embed 213   10.3.2 设置自动运行——autostart 214   10.3.3 设置媒体文件的循环播放——loop 215   10.3.4 隐藏面板——hidden 216   10.3.5 添加其他类型的媒体文件 217   10.4 小结 217   10.5 习题 218   第2篇 HTML 5高级应用   第11章 HTML 5的新特性 221   视频讲解:6分钟   11.1 谁在开发HTML 5 222   11.2 HTML 5的新认识 222   11.2.1 兼容性 222   11.2.2 实用性和用户优先 222   11.2.3 化繁为简 223   11.3 无插件范式 223   11.4 HTML 5的新特性 224   11.5 小结 224   第12章 HTML 5与HTML 4的区别 225   视频讲解:51分钟   12.1 语法的改变 226   12.1.1 HTML 5的语法变化 226   12.1.2 HTML 5中的标记方法 226   12.1.3 HTML 5语法中的3个要点 227   12.1.4 标签实例 228   12.2 新增的元素和废除的元素 228   12.2.1 新增的结构元素 228   12.2.2 新增的块级的语义元素 230   12.2.3 新增的行内的语义元素 231   12.2.4 新增的嵌入多媒体元素与交互性元素 231   12.2.5 新增的input元素的类型 232   12.2.6 废除的元素 233   12.3 新增的属性和废除的属性 234   12.3.1 新增的属性 234   12.3.2 废除的属性 236   12.4 全局属性 237   12.4.1 contentEditable属性 237   12.4.2 designMode属性 238   12.4.3 hidden属性 239   12.4.4 spellcheck属性 239   12.4.5 tabindex属性 240   12.5 小结 240   12.6 习题 240   第13章 HTML 5的结构 242   视频讲解:20分钟   13.1 新增的主体结构元素 243   13.1.1 article元素 243   13.1.2 section元素 245   13.1.3 nav元素 247   13.1.4 aside元素 248   13.1.5 time元素 250   13.1.6 pubdate属性 250   13.2 新增的非主体结构元素 251   13.2.1 header元素 251   13.2.2 hgroup元素 252   13.2.3 footer元素 252   13.2.4 address元素 253   13.3 小结 253   13.4 习题 254   第14章 HTML 5中的表单 255   视频讲解:50分钟   14.1 新增表单元素与属性 256   14.1.1 新增的属性 256   14.1.2 增加与改良的input元素的种类 259   14.1.3 output元素的添加 264   14.1.4 应用新增元素制作注册表单 264   14.2 对表单的验证 266   14.2.1 自动验证 266   14.2.2 checkValidity显式验证法 267   14.2.3 避免验证 268   14.2.4 使用setCustomValidity方法自定义   错误信息 268   14.3 增加的页面元素 269   14.3.1 新增的figure元素 270   14.3.2 新增的details元素 271   14.3.3 新增的mark元素 272   14.3.4 新增的progress元素 274   14.3.5 新增的meter元素 275   14.3.6 改良的ol列表 276   14.3.7 改良的dl列表 276   14.3.8 加以严格限制的cite元素 277   14.3.9 重新定义的small元素 278   14.4 小结 278   14.5 习题 279   第15章 HTML 5中的文件与拖放 280   视频讲解:40分钟   15.1 选择文件 281   15.1.1 通过file对象选择文件 281   15.1.2 使用blob接口获取文件的类型与大小 282   15.1.3 通过类型过滤选择的文件 283   15.2 使用FileReader接口读取文件 285   15.2.1 检测浏览器是否支持FileReader接口 285   15.2.2 FileReader接口的方法 285   15.2.3 使用readAsDataURL方法预览图片 286   15.2.4 使用readAsText方法读取文本文件 287   15.2.5 FileReader接口中的事件 288   15.3 拖放API 290   15.3.1 实现拖放的步骤 290   15.3.2 通过拖放显示欢迎信息 291   15.4 dataTransfer对象应用详解 293   15.4.1 使用effectAllowed和dropEffect属性   设置拖放效果 293   15.4.2 使用setDragImage方法设置拖放图标 294   15.5 小结 295   15.6 习题 295   第16章 多媒体播放 296   视频讲解:35分钟   16.1 HTML 5多媒体的简述 297   16.1.1 HTML 4中多媒体的应用 297   16.1.2 HTML 5页面中的多媒体 297   16.2 多媒体元素基本属性 298   16.3 多媒体元素常用方法 302   16.3.1 媒体播放时的方法 302   16.3.2 canPlayType(type)方法 304   16.4 多媒体元素重要事件 304   16.4.1 事件处理方式 304   16.4.2 事件介绍 305   16.4.3 事件实例 306   16.5 小结 308   16.6 习题 309   第17章 绘制图形 310   视频讲解:1小时32分钟   17.1 canvas的基础知识 311   17.1.1 canvas是什么 311   17.1.2 在页面中放置canvas元素 311   17.1.3 绘制带边框的矩形 312   17.2 在画布中使用路径 314   17.2.1 使用arc方法绘制圆形 314   17.2.2 使用moveTo与lineTo路径绘制火柴人 316   17.2.3 贝塞尔和二次方曲线 317   17.3 运用样式与颜色 319   17.3.1 fillStyle 和 strokeStyle属性 319   17.3.2 透明度 globalAlpha 321   17.3.3 线型 Line styles 323   17.4 绘制渐变图形 325   17.4.1 绘制线性渐变 325   17.4.2 绘制径向渐变 326   17.5 绘制变形图形 328   17.5.1 坐标的变换 328   17.5.2 矩阵变换 330   17.6 组合多个图形 333   17.7 给图形绘制阴影 335   17.8 应用图像 336   17.8.1 绘制图像 336   17.8.2 图像的局部放大 338   17.8.3 图像平铺 339   17.8.4 图像裁剪 341   17.8.5 像素的处理 342   17.9 绘制文字 344   17.10 保存与恢复状态 345   17.11 文件的保存 346   17.12 对画布绘制实现动画 347   17.13 综合实例——桌面时钟 348   17.14 小结 350   17.15 习题 351   第18章 数据存储 352   视频讲解:50分钟   18.1 初识Web Storage 353   18.1.1 什么是Web Storage 353   18.1.2 使用Web Storage中的API 353   18.1.3 sessionStorage和localStorage的实例   ——计数器 355   18.1.4 Web Storage综合实例——留言本 357   18.1.5 JSON对象的存数实例——用户信息卡 359   18.2 本地数据库 361   18.2.1 Web SQL数据库简介 361   18.2.2 使用Web SQL Database API 362   18.2.3 本地数据库实例——用户登录 363   18.3 小结 367   18.4 习题 367   第19章 离线应用程序 368   视频讲解:13分钟   19.1 HTML 5离线Web应用概述 369   19.1.1 离线Web应用概述 369   19.1.2 本地缓存与浏览器网页缓存的区别 370   19.2 创建HTML 5离线应用 370   19.2.1 缓存清单(manifest) 370   19.2.2 配置IIS服务器 372   19.2.3 浏览缓存清单 372   19.3 浏览器与服务器的交互过程 373   19.4 applicationCache对象 374   19.4.1 swapCache方法 375   19.4.2 applicationCache对象的事件 376   19.5 小结 379   19.6 习题 379   第20章 使用Web Worker处理线程 380   视频讲解:25分钟   20.1 Web Worker概述 381   20.1.1 创建和使用Worker 381   20.1.2 Web Worker应用实例——求和运算 382   20.2 在Worker内部能做什么 383   20.3 多个JavaScript文件的加载与执行 384   20.4 线程嵌套 384   20.4.1 单层嵌套 385   20.4.2 在多个子线程中进行数据的交互 387   20.5 小结 390   20.6 习题 390   第21章 通信API 391   视频讲解:4分钟   21.1 跨文档消息通信 392   21.1.1 使用postMessageAPI 392   21.1.2 跨文档消息传输 392   21.2 小结 394   第22章 获取地理位置信息 395   视频讲解:12分钟   22.1 Geolocation API的概述 396   22.1.1 使用getCurrentPosition方法获取   当前地理位置 396   22.1.2 持续监视当前地理位置的信息 398   22.1.3 停止获取当前用户的地理位置信息 398   22.2 position对象 398   22.3 在google地图上显示“我在这里” 399   22.4 小结 401   22.5 习题 401   第3篇 HTML 5项目实战   第23章 旅游信息网前台页面 405   视频讲解:20分钟   23.1 概述 406   23.2 网站预览 406   23.3 关键技术 410   23.3.1 网站主体结构设计 410   23.3.2 HTML 5结构元素的使用 410   23.4 网站公共部分设计 411   23.4.1 设计网站公共header 411   23.4.2 设计网站公共footer 418   23.5 网站主页设计 419   23.5.1 显示网站介绍及相关图片 419   23.5.2 主页左侧导航的实现 421   23.6 留下足迹页面设计 424   23.6.1 播放音乐 424   23.6.2 添加留言功能的实现 425   23.7 小结 426   附录 习题参考答案 427   HTML 5从入门到精通   目 录   X   XI
要在 JavaScript 中调用百度翻译 API,可以按照以下步骤进行操作: 1. 在百度开发者平台上创建一个账号,并创建一个翻译应用,获取 API 密钥。 2. 在你的 HTML 文件中引入 jQuery 库,可以通过以下方式添加: ```html <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> ``` 3. 创建一个 JavaScript 函数来调用百度翻译 API。下面是一个简单的示例: ```javascript function translateText(text) { var apiKey = 'YOUR_API_KEY'; var apiUrl = 'https://fanyi-api.baidu.com/api/trans/vip/translate'; $.ajax({ url: apiUrl, type: 'get', dataType: 'jsonp', data: { q: text, appid: 'YOUR_APP_ID', salt: new Date().getTime(), from: 'auto', to: 'en', sign: md5('YOUR_APP_ID' + text + new Date().getTime() + 'YOUR_API_KEY') }, success: function(response) { var translatedText = response.trans_result[0].dst; console.log(translatedText); }, error: function(xhr, status, error) { console.log(error); } }); } ``` 请确保替换 `YOUR_API_KEY` 和 `YOUR_APP_ID` 为你在百度开发者平台上创建的应用的 API 密钥和应用ID。 4. 在你的页面中调用这个函数,例如: ```javascript translateText('你好'); ``` 这将翻译 "你好" 成英文,并将结果打印到控制台。 请注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。同时,为了保护你的 API 密钥,你可能需要在后端进行翻译请求,而不是直接在前端调用 API

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值