※ 引述《hijkxyzuw (i,j,k) ×(x,y,z)》之铭言:
: 最近在做一个仓颉输入法练习软件,
: 用 html + css + js 写的。
: 我想建立一个物件可以依仓颉输入法输出字根。
: ( cangJieDecode['hapi'] // 输出 '的' )
: 可以把仓颉字根对应资料丢在 js 或 html 里。
: js 的话我的程式会超级长......,所以我没有,
: 我是认为资料应该和程式分开。
: 但分开就是丢到 html 里了......。
其实一样都能写成 JS
只不过拆成几个档案,比如说 data.js、main.js
然后用 <script> 按顺序加载
: 一开始是在 for 循环里存取 dom 来建立 cangJie 的属性。
: <tr>
: <td alt="hapi">的</td>
: <td alt="vfbtv">网</td>
: ....
: </tr>
: // 大概是这样
: // for(var i=0; i<tr.length; i++)
: // cangJie[td.alt] = td.textContent;
: 但后来发现浏览器要解析会很慢,
: 就改成存在一个标签里,要用再用 javascript 解析。
: <pre>
: 的hapi
: 网vfbtv
: 就yfiku
: ...
: </pre>
我会把资料存在 data.js 里面,写法如下
var data = {
'hapi': '的'
};
简而言之就是存成 object 的 key-value 结构
: // var array = pre.textContent.split('\n');
: // for(var i=0; i<array.length; i++){
: // var s = array[i];
: // cangJie[s.substr(1)] = s.charAt(0);
要抓资料可以写在负责程式的 main.js (看你要怎么命名都行)
// 取得输入
var input = 'HAPI';
// 转成小写
var lower = input.toLowerCase();
// 检查 data 有没有符合的资料
if (data.hasOwnProperty(lower)) {
console.log(data[lower]);
}