# jquery-console
**Repository Path**: mirrors/jquery-console
## Basic Information
- **Project Name**: jquery-console
- **Description**: jquery-console 实现了简单的基于 Web 浏览器的终端控制台的 jQuery 插件
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://www.oschina.net/p/jquery-console
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2020-12-27
- **Last Updated**: 2025-12-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# jquery-console
A terminal emulator for making command consoles written in JavaScript
with jQuery.
See
[LICENSE](https://github.com/chrisdone/jquery-console/blob/master/LICENSE)
for the license.
## Example
For a list of examples, see
[the demo file](https://github.com/chrisdone/jquery-console/blob/master/demo.html),
and for a live demo, see
[live demo](http://chrisdone.com/jquery-console/) on my home page.
Simple example:
``` javascript
var container = $('
');
$('body').append(container);
var controller = container.console({
promptLabel: 'Demo> ',
commandValidate:function(line){
if (line == "") return false;
else return true;
},
commandHandle:function(line){
return [{msg:"=> [12,42]",
className:"jquery-console-message-value"},
{msg:":: [a]",
className:"jquery-console-message-type"}]
},
autofocus:true,
animateScroll:true,
promptHistory:true,
charInsertTrigger:function(keycode,line){
// Let you type until you press a-z
// Never allow zero.
return !line.match(/[a-z]+/) && keycode != '0'.charCodeAt(0);
}
});
```
Some CSS for your console:
``` css
div.console { font-size: 14px }
div.console div.jquery-console-inner
{ width:900px; height:200px; background:#333; padding:0.5em;
overflow:auto }
div.console div.jquery-console-prompt-box
{ color:#fff; font-family:monospace; }
div.console div.jquery-console-focus span.jquery-console-cursor
{ background:#fefefe; color:#333; font-weight:bold }
div.console div.jquery-console-message-error
{ color:#ef0505; font-family:sans-serif; font-weight:bold;
padding:0.1em; }
div.console div.jquery-console-message-value
{ color:#1ad027; font-family:monospace;
padding:0.1em; }
div.console div.jquery-console-message-type
{ color:#52666f; font-family:monospace;
padding:0.1em; }
div.console span.jquery-console-prompt-label { font-weight:bold }
```
## Usage options
Here are options which can be passed to `console`:
| Option | Type | Description
| ----------- | -------- | ------
| autofocus | bool | Autofocus the terminal, rather than having to click on it.
| promptHistory | bool | Provide history support (kind of crappy, needs doing properly.)
| historyPreserveColumn | bool | Preserve the column you were one when switching between history.
| welcomeMessage | string | Just a first message to display on the terminal.
| promptLabel | string | Prompt string like `'JavaScript> '`.
| cols | integer | The number of cols, this value is only used by the command completion to format the list of results.
| commandValidate | function | When user hits return, validate whether to trigger commandHandle and re-prompt.
| commandHandle | function | Handle the command line, return a string, boolean, or list of `{msg:"foo",className:"my-css-class"}`. `commandHandle(line,report)` is called. Report function is for you to report a result of the command asynchronously.
| completeHandle | function | Handle the command completion when the tab key is pressed. It returns a list of string completion suffixes.
| completeIssuer | function | Handle the command completion when the tab key is pressed. It differs from `'completeHandle'`. `'completeIssuer'` will just trigger the calculation for completion, and the result is returned asynchronously, after which the controller's `'showCompletion(promptText, completions)'` can be invoked with the result. `'completeHandle'` will retrieve the result synchronously, and show the result. If `'completeHandle'` exists, `'completeIssuer'` is ignored. A typical usage of `'completeIssuer'` is that the completion is retrieved from the server using ajax or WebSocket asynchronously.
| animateScroll | bool | Whether to animate the scroll to top. Currently disabled.
| charInsertTrigger | function | Predicate for whether to allow character insertion. `charInsertTrigger(char,line)` is called.
| cancelHandle | function | Handle a user-signaled interrupt.
| fadeOnReset | bool | Whether to trigger a fade in/out when the console is reset. Defaults to `true`.
## Uses in the wild
* [Try Haskell](http://tryhaskell.org/)
* [Try Idris](http://www.tryidris.org/console)
* [Caja](http://code.google.com/p/google-caja/)
* [Try Clojure](http://tryclj.com/)
* [Try Arc](http://tryarc.org/)
* [Try Github](http://try.github.io/) (was, now uses [CodeMirror](http://codemirror.net/))