一般买卖网站齐有一个话语的需求麻生希快播,便是为了温煦使用正体华文的国东说念主,会挑升提供一个切换到正体华文的选项(或曰“繁体华文”)。传统作念法是在作事端完成的,即通过某些控件或者过滤器休养文本话语。这里笔者先容一种浅易可行的治安,不是在作事端而是哄骗前端的 JavaScript 就不错切换正体华文。
约略六年前我还专门写过这议题的博文,这篇亦然奠基在那篇著述(旧文亦然参考了一妙手代码)之上,《对 JavaScript 繁简字切换的小变嫌》。彼一时,有必要把代码进行更新一下——畴前的太稚嫩啦。
如下图,咱们把切换按钮放在页脚(诚然你也不错搁置在“导航”或者其他更醒策画位置)。
由于页面假定设定均使用 Unicode 字符集,于是一般毋庸谈判 GB2312/BIG5 字符集问题,伟大的 Unicode 字符集照旧涵盖了繁体字的字符了(UTF-8 编码)。
如何在页面调用这个功能呢?很浅易,领先引入底下 Js(真贵还依赖 Function.prototype.delegate(), 底下会说起):
幼女强奸然后绑定按钮事件,咱们浅易地使用 onclick 绑定来全局函数 window.toChinese(el)、window.toSimpleChinese(el)。el 是按钮元素。
js 代码中比拟长的两个字符串变量区分是简体华文和繁体华文,他们之间的切换莫得什么神奇之处,仅仅通盘文本过程这些变量逐个双应即可。诚然这里仅仅常用的繁简对应,况且是机械的,有些稀奇的翻译需要关系高下文的,那种高等休养不在此筹办之列。
领先咱们望望变量函数 translate,现实它和会过递归遍历完通盘 DOM(不错说比拟笨的治安)
休养 DOM 本体麻生希快播,咱们第一时分思到的可能是 el.innerHTML,但其实大可不必,况且递归的期间 innerHTML 不太便捷。不妨再思思看,咱们其实只需要对文本休养即可,DOM API 能够判断 文本节点(node.nodeType == 3),然后可读可写的 data 属性便是开荒文本的(textNode.data),由此咱们就不错完成到繁体的切换。节点其他属性 title、alt、value 亦是相通旨趣。另外,if (("