【问题标题】:Simulate left and right arrow key event with javascript用javascript模拟左右方向键事件
【发布时间】:2011-04-01 17:11:52
【问题描述】:

我正在使用 slide.html5rocks.com 框架,我正在尝试在标签链接中使用 img 标签,但无法让 JavaScript onclick 模拟左右键事件来更改幻灯片

【问题讨论】:

    标签: javascript html arrow-keys


    【解决方案1】:

    您正在寻找可以发送事件的东西。这是应该起作用的东西:

    function fireKey(el)
    {
        //Set key to corresponding code. This one is set to the left arrow key.
        var key = 37;
        if(document.createEventObject)
        {
            var eventObj = document.createEventObject();
            eventObj.keyCode = key;
            el.fireEvent("onkeydown", eventObj);   
        }else if(document.createEvent)
        {
            var eventObj = document.createEvent("Events");
            eventObj.initEvent("keydown", true, true);
            eventObj.which = key;
            el.dispatchEvent(eventObj);
        }
    } 
    

    我用它做了一个很酷的小界面测试,你可能会感兴趣。这是它的外观:http://jsfiddle.net/FvCut/6/

    经测试可在 Firefox 3.6、Opera 11、Safari 5、IE 8 和 IE 7/IE Quirks 模式下运行。注意:当您像大多数浏览器一样按住某个键时,Opera 11 不会触发重复的“keydown”事件。

    【讨论】:

    • 这是在 Safari/Chrome 中为我工作的少数几个 sn-ps 之一。谢谢!
    • 谢谢。但它不起作用(移动 Safari)。是否有可能为全球文档发送事件?
    • 在我的情况下,仅适用于代码的第二部分,但使用 eventObj.keyCode = key;!移动版 Safari 5.1。
    【解决方案2】:

    你是如何模拟这个事件的? document.dispatchEvent 不适用于所有浏览器。 您可以使用此功能测试该功能:typeOf(document.dispatchEvent) != 'undefined'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      相关资源
      最近更新 更多