Re: [请益] 把资料丢在 html 里还是用 js 处理?

楼主: zoko741235 (台北金城武)   2016-08-30 15:12:39
※ 引述《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]);
}
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2016-09-01 22:40:00
感谢你的回应,但我很好奇,为什么是大写啊?
楼主: zoko741235 (台北金城武)   2016-09-02 08:37:00
你说var input 吗?这是我自己假设使用者可能会打开CAPS LOCK所以才透过这个步骤正确地从data抓出需要的资料
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2016-09-02 09:02:00
了解, 使用者输入到大写也不会错.

Links booklink

Contact Us: admin [ a t ] ucptt.com