为啥这个 jquery 终端命令功能不起作用?
Posted
技术标签:
【中文标题】为啥这个 jquery 终端命令功能不起作用?【英文标题】:Why does this jqueryterminal cmd function not work?为什么这个 jquery 终端命令功能不起作用? 【发布时间】:2018-02-09 01:42:45 【问题描述】:我有这个,我从 JQueryTerminal 代码的最新 zip 中编辑的:
<html>
<head>
<meta charset="utf-8" />
<title>JQuery Terminal Emulator Demo</title>
<script src="../js/jquery-1.7.1.min.js"></script>
<script src="../js/jquery.mousewheel-min.js"></script>
<script src="../js/jquery.terminal.min.js"></script>
<link href="../css/jquery.terminal.css" rel="stylesheet"/>
</head>
<body>
<div id="some_id"></div>
</body>
<script>
$('#some_id').cmd(
prompt: '> ',
width: '100%',
commands: function(command)
//process user commands
);
</script>
</html>
.cmd 直接取自网站http://terminal.jcubic.pl/api_reference.php#cmd。为什么我在 Firefox 的 javascript 控制台中得到这个:
TypeError: $ 未定义[了解更多] jquery.terminal.min.js:36:23429
谢谢!
编辑:
我不应该得到 404。我基于示例文件夹中的 tilda-demo.html 文件并将其放在同一个文件夹中。我刚刚检查了开发人员工具。没有 404,还有其他原因吗?
编辑:
更多错误信息如下:
ke file:///Volumes/Macintosh%20HD/jcubic-jquery.terminal-26bc656/js/jquery.terminal.min.js:36:23429 调度文件:///Volumes/Macintosh%20HD/jcubic-jquery.terminal-26bc656>/js/jquery-1.7.1.min.js:3:4299 i file:///Volumes/Macintosh%20HD/jcubic-jquery.terminal-26bc656/js/jquery-1.7.1.min.js:3:311
为了记录,当我输入“ASDSF”时,我在 Chrome Canary 中得到了这个:
jquery.terminal.min.js:36 绑定 jquery.terminal.min.js:36 真 jquery.terminal.min.js:36 Uncaught TypeError:无法读取未定义的属性“A” 在 HTMLHtmlElement.ke (jquery.terminal.min.js:36) 在 HTMLHtmlElement.dispatch (jquery-1.7.1.min.js:3) 在 HTMLHtmlElement.i (jquery-1.7.1.min.js:3) jquery.terminal.min.js:36 Uncaught TypeError: Cannot read property 'S' > of undefined 在 HTMLHtmlElement.ke (jquery.terminal.min.js:36) 在 HTMLHtmlElement.dispatch (jquery-1.7.1.min.js:3) 在 HTMLHtmlElement.i (jquery-1.7.1.min.js:3) jquery.terminal.min.js:36 Uncaught TypeError:无法读取未定义的属性“D” 在 HTMLHtmlElement.ke (jquery.terminal.min.js:36) 在 HTMLHtmlElement.dispatch (jquery-1.7.1.min.js:3) 在 HTMLHtmlElement.i (jquery-1.7.1.min.js:3) jquery.terminal.min.js:36 Uncaught TypeError:无法读取未定义的属性“S” 在 HTMLHtmlElement.ke (jquery.terminal.min.js:36) 在 HTMLHtmlElement.dispatch (jquery-1.7.1.min.js:3) 在 HTMLHtmlElement.i (jquery-1.7.1.min.js:3) jquery.terminal.min.js:36 Uncaught TypeError:无法读取未定义的属性“F” 在 HTMLHtmlElement.ke (jquery.terminal.min.js:36) 在 HTMLHtmlElement.dispatch (jquery-1.7.1.min.js:3) 在 HTMLHtmlElement.i (jquery-1.7.1.min.js:3)
【问题讨论】:
也许你有 404 的 jQuery,检查开发者工具。这是具有相同代码codepen.io/jcubic/pen/XaoqGp的工作示例 嗯,什么?你是说它适用于chrome但不适用于firefox?您在 chrome 中遇到的错误可能是由于//process user commands
内部的某些内容,这与您最初在问题中提出的错误完全无关。
【参考方案1】:
感谢您的帖子,@jcubic。我找到了解决方案。我需要添加键盘映射。现在它完美地工作了。现在的代码如下所示:
$('#some_id').cmd(
prompt: '> ',
width: '100%',
keymap: function(command)
,
commands: function(command)
console.log(command);
);
【讨论】:
这绝对是一个bug,keymap应该是一个对象 修复将在下一个 1.6.5 版本中进行以上是关于为啥这个 jquery 终端命令功能不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 apt-get 功能在 Mac OS X v10.9 (Mavericks) 的终端中不起作用?
为啥是 Ctrl+.当我将它绑定到 Emacs 中的命令时不起作用?