搜尋

首頁  >  問答  >  主體

javascript - 电视机顶盒的浏览器不支持keyup事件,可以如何模拟?

事实用以下检测代码来检测时,是支持Keyup的

function detectEventSupport(eventName) {
    var tempElement = document.createElement('p'),
        isSupported;
    eventName = 'on' + eventName;
    isSupported = (eventName in tempElement); // 使用第一种方式
    // 如果第一种方式行不通,那就来看看它是不是已知事件类型
    if (!isSupported) {
        tempElement.setAttribute(eventName, 'xxx');
        isSupported = typeof tempElement[eventName] === 'function';
        if(typeof tempElement[eventName] != 'undefined'){
            tempElement.removeAttribute(eventName);
        }
    }
    // 清除掉动态创建的元素,以便内存回收
    tempElement = null;
    // 返回检测结果
    return isSupported;
}

但实际上使用时并不会触发。

因此想模拟keyup事件

var mock = null;
addEvent(document, 'keydown', function(e) {
    keydownHandler(e);
    if (mock) clearTimeout(mock);
    mock = setTimeout(function() {
        keyupHandler(e);
    }, 200);
});

但是这种方法的效果不是很好,请问还有没有更好的方法

PHP中文网PHP中文网2777 天前760

全部回覆(4)我來回復

  • 天蓬老师

    天蓬老师2017-04-11 12:58:41

    电视用什么浏览器啊?

    回覆
    0
  • 阿神

    阿神2017-04-11 12:58:41

    还有基于电视终端开发的?!!!

    回覆
    0
  • 阿神

    阿神2017-04-11 12:58:41

    厉害了我的哥!
    alert 一下 navigator.userAgent 看看什么内核的呀

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 12:58:41

    用touchend事件代替

    回覆
    0
  • 取消回覆