作者zoko741235 (台北金城武)
看板Web_Design
标题Re: [请益] 把资料丢在 html 里还是用 js 处理?
时间Tue Aug 30 15:12:39 2016
※ 引述《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]);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 134.208.60.23
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Web_Design/M.1472541162.A.E3A.html
1F:→ hijkxyzuw: 感谢你的回应,但我很好奇,为什麽是大写啊? 09/01 22:40
2F:→ zoko741235: 你说var input 吗? 09/02 08:37
3F:→ zoko741235: 这是我自己假设使用者可能会打开CAPS LOCK 09/02 08:38
4F:→ zoko741235: 所以才透过这个步骤正确地从data抓出需要的资料 09/02 08:38
5F:→ hijkxyzuw: 了解, 使用者输入到大写也不会错. 09/02 09:02