Skip to content

XEpg 速查表

一、初始化模板

javascript
window.onload = function() {
    XEpg.My.init({currentId: "nav1_0", pageMark: "page"});
    XEpg.area("nav1").setColumn(5).setRow(3)
        .subFocus({"class": "item item_focus"})
        .subBlur({"class": "item"})
        .run();
    XEpg.My.pageLoadShowFocus();
};

二、区域类 XEpg.area("id")

基础配置

方法参数说明
setColumn(n)数字设置列数
setRow(n)数字设置行数
setStartIndex(n)数字设置起始索引,默认0
setSelectId(id)字符串预设选中ID
run()执行配置(必须调用)
getColumn()获取列数
getRow()获取行数
getSelectId()获取选中ID
clearObj()清理绑定
deleteObj()删除区域

子元素事件

方法参数格式说明
subFocus(){"class": "item focus"}获得焦点
{"style": "left:10px"}改变样式
{"func": fn}执行函数
[{}, {}]组合操作(推荐)
subBlur()同上失去焦点
subClick(){"url": "page.html"}跳转URL
{"titleUrl": ""}使用title跳转
{"func": fn}执行函数
subScrollText(){"enTextLen": 28, "enSingleWidth": 12}文字滚动
{"moveSpacing": 2, "timeSpacing": 150}可选参数
subUp(){"func": fn}内部上键
subDown(){"func": fn}内部下键
subLeft(){"func": fn}内部左键
subRight(){"func": fn}内部右键

边界跳转

方法参数格式说明
up(){"area": {"id": "nav2", "indexs": [0,1,2], "isMemory": true}}跳转区域
{"id": "nav2_0"}跳转元素
{"func": fn}执行函数
[{}, {}]组合操作
down()同上下边界
left()同上左边界
right()同上右边界

三、元素类 XEpg.$("id")

DOM操作

方法读取写入说明
html().html().html("内容")HTML内容
value().value().value("值")表单值
style().style().style("left:10px")样式
className().className().className("item")类名
attr(key, val).attr("title").attr("title", "值")属性
addHtml(val, before)-.addHtml("内容", true)累加HTML
addValue(val, before)-.addValue("值", true)累加值
addStyle(val)-.addStyle("left:10px")累加样式
removeStyle(val)-.removeStyle("left:10px")移除样式
addClassName(val)-.addClassName("focus")累加类名
removeClassName(val)-.removeClassName("focus")移除类名

样式属性操作

方法读取写入说明
styleAttr(key, val).styleAttr("left").styleAttr("left", "10px")单个样式
styleAttrNumber(key, val, unit).styleAttrNumber("left").styleAttrNumber("left", 10)数字样式
removeStyleAttr(...keys)-.removeStyleAttr("left", "top")移除多个

显示控制

方法说明
show()显示元素
hide()隐藏元素
isActive()检查是否存在且可见
getObj()获取DOM对象

事件绑定

方法参数格式说明
up(){"id": "nav1_0"}上键
down(){"id": "nav1_1"}下键
left(){"id": "nav1_2"}左键
right(){"id": "nav1_3"}右键
click(){"url": "page.html"}点击
focus(){"class": "item focus"}焦点
blur(){"class": "item"}失焦
scrollText(){"enTextLen": 28, "enSingleWidth": 12}滚动

手动触发

方法说明
onUp()触发上键
onDown()触发下键
onLeft()触发左键
onRight()触发右键
onClick()触发点击
onFocus()触发焦点
onBlur()触发失焦

清理

方法说明
clearObj()清理缓存
deleteObj(locationObj)删除元素

四、配置类 XEpg.My

初始化

javascript
XEpg.My.init({
    currentId: "nav1_0",        // 初始焦点ID
    currentAreaId: "nav1",      // 当前区域ID
    pageMark: "index",          // 页面标识
    isQuitSaveCooke: true,      // 保存历史
    backType: 2                 // 1=history.back, 2=栈
});

方法

方法说明
pageLoadShowFocus()显示焦点
onFocusById(id)移动焦点
gotoPage(url)跳转页面
backPage()返回上一页
getIdIndex(id)获取ID数字索引
setHistory()设置历史
getHistory()获取历史
parseUrl(url)解析URL参数

属性

属性说明
currentId当前焦点ID
previousId前一个焦点ID
currentAreaId当前区域ID
historyId历史焦点ID
historyObj历史参数对象
pageMark页面标识

可重写方法

方法说明
pageQuitSetHistoryUrl(obj)自定义历史URL
pageQuitSetHistoryParameter()自定义历史参数

五、导航类 XEpg.Nav

按键键值

按键键值按键键值
38, 140, 2
37, 339, 4
确认13返回8, 340, 1249
0-948-57上页33
下页34删除46
红键275, 1108绿键276, 1110
黄键277, 1109, 65蓝键278, 1112, 262
音量+259, 81音量-260, 87
静音261, 69声道286

可重写事件

方法说明方法说明
key_up_event()上键key_down_event()下键
key_left_event()左键key_right_event()右键
key_ok_event()确认key_back_event()返回
key_pageUp_event()上页key_pageDown_event()下页
key_del_event()删除key_number_event(n)数字
key_red_event()红键key_green_event()绿键
key_yellow_event()黄键key_blue_event()蓝键
key_volUp_event()音量+key_volDown_event()音量-
key_mute_event()静音key_audioChannel_event()声道
key_default_event(code)其他键--

开关

属性说明
canPressOk启用确认键
canPressNumber启用数字键
canPressColor启用彩色键

其他方法

方法说明
keyBind()绑定按键(自动调用)
keyHandle(keyCode)处理按键

六、工具类 XEpg.Util

字符串

方法说明
getStrRealLen(str)获取真实长度(中文=2)
getSubStr(str, len, isSuffix)截取字符串
numSupplyZero(initStr, numStr)数字补零
timeFormat(seconds)时间格式化 hh:mm:ss
jsonTrim(str)清除换行回车
trim(str)清除首尾空格
方法说明
setCookie(key, val)设置Cookie
getCookie(key)获取Cookie
delCookie(key)删除Cookie

URL

方法说明
getUrlParam(key, url)获取URL参数
getUrlParameterObj(url)获取参数对象
replaceUrlParams(url, key, val)替换URL参数
gotoPage(url)页面跳转

Ajax

方法说明
ajaxGet(url, callback)GET请求
ajaxPost(url, data, callback)POST请求
createJsonp(id, url)创建JSONP
deleteJsonp(id)删除JSONP

数据处理

方法说明
isArray(obj)判断是否数组
argumentsToArray(args)arguments转数组
getPageTotal(total, size)计算总页数
getSliceList(arr, page, size)获取分页数据
objectToStr(obj)对象转字符串
parseJSON(str)JSON解析
each(obj, callback)遍历
renderTpl(data, tpl)模板渲染

导航记录

方法说明
addNavigationUrl(url)添加导航记录
getLastNavigationUrl()获取上一个URL(不删)
getBackNavigationUrl()获取并删除上一个URL
gotoBackNavigationUrl()跳转回上一页

七、加密工具

Base64

方法说明
base64.encode(str)Base64编码
base64.decode(str)Base64解码

MD5

方法说明
MD5(str)MD5加密(大写)

八、全局函数

函数说明
_$(id)快捷获取DOM元素
window.focus()窗口获得焦点

九、HTML命名规范

类型格式示例
区域元素ID区域ID_数字nav1_0, nav1_1
文字滚动ID元素ID_txtnav1_0_txt
区域ID字母开头nav1, content

十、String扩展方法

方法说明
trim()清除空格
jsonTrim()清除\r\n
replaceAll(s1, s2)批量替换

十一、常见参数格式

事件参数格式

javascript
// 单个操作
{"class": "item focus"}
{"style": "left:10px"}
{"func": myFunction}
{"id": "nav1_0"}
{"url": "page.html"}
{"titleUrl": ""}

// 组合操作(推荐数组)
[
    {"func": myFunction},
    {"class": "item focus"},
    {"style": "left:10px"}
]

// 区域跳转
{
    "area": {
        "id": "nav2",
        "indexs": [0, 1, 2],
        "isMemory": true
    }
}

文字滚动参数

javascript
{
    "enTextLen": 28,          // 必填:显示英文字符数
    "enSingleWidth": 12,      // 必填:字符宽度=fontSize/2
    "moveSpacing": 2,         // 可选:移动间隔
    "timeSpacing": 150        // 可选:时间间隔ms
}

十二、调试技巧

查看状态

javascript
console.log(XEpg.My.currentId);        // 当前焦点
console.log(XEpg.My.currentAreaId);    // 当前区域
console.log(XEpg.My.historyId);        // 历史焦点
console.log(AreaArrayObj);             // 所有区域对象
console.log(EleArrayObj);              // 所有元素对象

手动操作

javascript
XEpg.My.onFocusById("nav1_5");         // 移动焦点
XEpg.$("nav1_0").onFocus();            // 显示焦点
XEpg.$("nav1_0").onBlur();             // 失去焦点
XEpg.Nav.keyHandle(38);                // 模拟按键

十三、常见问题检查清单

问题检查项
焦点不显示✓ 调用run() ✓ 调用pageLoadShowFocus() ✓ CSS正确
按键无响应✓ ID格式正确 ✓ 元素可见 ✓ 事件已绑定
边界跳转失败✓ 目标存在 ✓ indexs长度正确 ✓ 目标可见
动态更新失效✓ 调用clearObj() ✓ 重新run()
文字不滚动✓ ID格式_txt ✓ 文字超长 ✓ 焦点在元素上

十四、性能优化

建议说明
批量操作DOM先拼接HTML再innerHTML
及时清理不用的对象调用deleteObj()
使用区域配置避免单个元素配置
缓存对象重复使用的对象缓存
使用数组参数兼容性更好