jq控制台是jQuery的一个简单但功能丰富且高度可定制的终端模拟器,它允许您在浏览器中模拟类似linux/unix的环境。
该插件的目标是创建一个web终端模拟器,让人感觉尽可能接近真实的物理设备。
1.开始在文档中加载jq控制台插件的文件。
<script src="/path/to/cdn/jquery.min.js"></script> <script src="/path/to/lib/jqconsole.js"></script>
2.创建一个空的DIV来容纳web终端。
<div id="console"></div>
3.初始化插件。可用参数:
window.jqconsole = $('#console').jqconsole(welcomeString, promptLabel, continueLabel, disableAutoFocus);
4.将您自己的风格应用于网络终端。
#console { height: 400px; width: 750px; position:relative; background-color: black; border: 2px solid #CCC; margin: 0 auto; margin-top: 50px; } .jqconsole { padding: 10px; padding-bottom: 10px; } .jqconsole-cursor { background-color: #999; } .jqconsole-blurred .jqconsole-cursor { background-color: #666; } .jqconsole-prompt { color: #0d0; } .jqconsole-old-prompt { color: #0b0; font-weight: normal; } .jqconsole-input { color: #dd0; } .jqconsole-old-input { color: #bb0; font-weight: normal; } .jqconsole-composition { background-color: red; } .jqconsole-prompt-text { color: red; }
5.注册新的快捷方式。所有可用的内置快捷方式:
jqconsole.RegisterShortcut('KEYCODE OR The ASCII code of the first character', function() { // do something });
6.启动命令提示符操作。如果当前正在进行另一个输入或提示操作,则新的提示操作将被排队,并将在当前操作和所有先前排队的操作完成时调用。
jqconsole.Prompt(history_enabled, result_callback, multiline_callback, async_multiline);
7.启动输入操作。如果当前正在进行另一个输入或提示操作,则新的输入操作将被排队,并将在当前操作和所有先前排队的操作完成时调用。
jqconsole.Input(function(input) { // ... });
8.更多API方法。
// Writes the given text to the console in a span, with an optional class. jqconsole.Write(text, class, escape=true); // Sets the number of spaces inserted when indenting. jqconsole.SetIndentWidth(width); // Returns the number of spaces inserted when indenting. jqconsole.GetIndentWidth(); // Registers character matching settings for a single matching // open: the openning character // close: the closing character // class: the html class to add to the matched characters jqconsole.RegisterMatching(open, close, class); // Unregisters a character matching. jqconsole.UnRegisterMatching(open, close); // Adds a dom node, where any text would have been inserted jqconsole.Append(node); // Aborts the current prompt operation and returns to output mode or the next queued input/prompt operation. jqconsole.AbortPrompt(); // Sets the contents of the prompt. jqconsole.SetPromptText('text'); // Clears the contents of the prompt. jqconsole.ClearPromptText(clear_label); // Returns the contents of the prompt. jqconsole.GetPromptText(full); // Replaces the main prompt label. jqconsole.SetPromptLabel(main_label, continue_label); // Updates the main prompt label. jqconsole.UpdatePromptLabel(); // Handles key presses and potentially override internal keypress handler. jqconsole.SetKeyPressHandler(handler); // Handles and potentially override control keys (tab, up, down). jqconsole.SetControlKeyHandler(handler); // Resets the shortcut configuration. jqconsole.ResetShortcuts(); // Sets the history // history: The history buffer to use. // e.g. ['a = 3', 'a + 3'] jqconsole.SetHistory(history); // Gets the current history jqconsole.GetHistory(history); // Resets the history into intitial state. jqconsole.ResetHistory(); // Moves the cursor to the start of the current prompt line. // all_lines: If true, moves to the beginning of the first prompt line, instead of the beginning of the current. jqconsole.MoveToStart(all_lines); // Moves the cursor to the end of the current prompt line. jqconsole.MoveToEnd(all_lines); // Returns the 0-based number of the column on which the cursor currently is. jqconsole.GetColumn(); // Returns the 0-based number of the line on which the cursor currently is. jqconsole.GetLine(); // Gets the current prompt state: input, output, or prompt jqconsole.GetLine(); // Sets focus on the console's hidden input box so input can be read. jqconsole.Focus(); // Enables focus and input on the console. jqconsole.Enable(); // Disables focus and input on the console. jqconsole.Disable(); // Returns true if the console is disabled. jqconsole.IsDisabled(); // Dumps the content of the console before the current prompt. jqconsole.Dump(); // Resets the console to its initial state. jqconsole.Reset(); // Clear the console keeping only the prompt. jqconsole.Clear();