0

我在我的页面上使用带有引导程序的 jQuery 终端( http://terminal.jcubic.pl/ )。

我试图让终端进入模态,我让模态的东西工作,然后按两个按钮打开模态..

但是每当我加载页面时,我必须先点击身体上的某个地方,然后才能按下它们,否则什么都不会发生,我什至对我的点击都没有反应。

我究竟做错了什么?

终端:

$('#terminal').terminal(function(command, term) {
    if (command == 'help') {
        term.echo("available commands are system, test ");
    } 
});

我的模态:

<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title" id="myModalLabel">Terminal</h4>
      </div>
      <div class="modal-body">
        <div id="terminal"></div>
      </div>
    </div>
  </div>
</div>
4

2 回答 2

0

显然,当页面加载时,如果Ctrl没有事先明确设置焦点,就无法从页面内捕获键。

您可以以编程方式设置焦点,但无法获得“Ctrl”键……据我所知,这是在页面加载之前在页面上操作之前唯一不能使用的键。

您应该考虑更改您的按键组合,或者强制用户点击页面,例如,通过他必须确认的消息。

除此之外,您的代码正在运行。我看到的唯一缺陷是您关闭</body>了两次。

于 2014-10-24T21:52:08.067 回答
0

这是旧的,但仅供参考,在这个问题Bootstrap modal show event答案中说,当 bootstrap modal 显示时如何添加事件(您使用显示的事件)。所以你可以使用这个:

$(document).ready(function() {
    var term = $('#terminal').terminal(function(command, term) {
        if (command == 'help') {
            term.echo("available commands are system, test ");
        } 
    }, {enabled: false});

    $('#myModal').on('shown', function() {
        term.enable();
    })
});
于 2017-04-22T14:46:14.940 回答