【问题标题】:is it possible in javascript to create shortcuts with sequence like 123,345 instead of combo?是否可以在 javascript 中创建具有 123,345 之类的序列而不是组合的快捷方式?
【发布时间】:2010-05-17 17:28:07
【问题描述】:

我已经使用了一些脚本来实现网页中的快捷方式

但我想知道是否可以关联一些组合,而不是像 Ctrl+X 这样的同步,而更像是键入 1..2..3 的序列或任何其他组合来执行脚本...

让我们假设这个例子:

你有一个长长的数字列表:

您可以输入 3..5...6,这样您就可以通过第 3 项然后是 35 和 356 进入第 356 项

或多或少类似于您在选择选择框时键入时

我希望它很清楚,我不容易解释......

【问题讨论】:

    标签: javascript keyboard-shortcuts numbers


    【解决方案1】:

    建议:创建一个文本输入,然后挂钩 onchange 事件。当框中的值发生变化时,在内部导航到页面上的适当位置。使用 CSS position:fixed 将输入保持在正确的位置。

    示例页面 html:

    <p id="3">
        This is paragraph 3.
    </p>
    ...
    <p id="35">
        This is paragraph 35.
    </p>
    ...
    <p id="356">
        This is paragraph 356
    </p>
    

    导航框的示例html:

    <div class="navigate">
        <p>Go to: <input type="text" id="navbox" /></p>
    </div>
    

    css 把它放在屏幕的右上角:

    .navigate {
        position: fixed;
        top: 0px;
        right: 0px;
    }
    

    执行导航的javascript:

    (function(){
        var navbox = document.getElementById("navbox");
        navbox.onchange = function(){
            var value = navbox.value;
            if (document.getElementById(value)) {
                window.location.assign("#" + value);
            }
        };
    })();
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      我想我理解你的问题。 这应该不会太难。我建议使用 JQuery 之类的库并订阅 keydown 甚至在浏览器窗口中。然后有 5 个最近按下的键的缓冲区,每次按键后查看 3 个最近按下的键是否匹配任何保存的序列。您还可以轻松为每个 keydown 事件添加时间戳,并要求所有键在彼此的特定时间范围内按下以触发快捷方式。

      【讨论】:

      • 是的,我认为这是我一直在寻找的答案(ropstah 也是如此)...我没有找到任何可能考虑构建脚本的操作系统...
      【解决方案3】:

      我实际上找到了一个很棒的脚本来注册击键序列 那是

      http://boedesign.com/demos/keystrokes/

      这个脚本的唯一问题是如果你输入

      'man' 或 'manner',它会触发 'man',因为它是最短序列...这个脚本可能需要一个计时器...

      我也在想这个问题的解决方案可能是完全不同的方法 在不可见的输入字段上使用自动完成脚本...你怎么看?

      【讨论】:

        【解决方案4】:

        是的,有许多 javascript 框架可以让您做到这一点。例如,检查这个JQuery autocomplete demo

        希望对你有帮助;)

        【讨论】:

          【解决方案5】:

          我想你可能会喜欢这个,'typeahead' 正在寻找位置..

          http://www.pengoworks.com/workshop/jquery/autocomplete.htm

          【讨论】:

            【解决方案6】:

            关于“键盘快捷键”:this 是一个很好的脚本,可以处理快捷键,但不能处理序列(CTRL、SHIFT 等修饰符确实有效)。

            如果您希望将一系列键输入作为“一个快捷方式”处理,我认为您需要自己编写一个自定义脚本。当前的库不支持这一点。

            您需要在短时间内获取所有输入(每次按键后重置)。当计时器结束时,您可以验证针对您的快捷键列表输入的按键序列。

            【讨论】:

            • 是的,我想这就是我一直在寻找的答案...我没有找到任何东西我可能会考虑构建脚本...
            猜你喜欢
            • 2012-01-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多