我正在尝试根据脚本中更改的变量
current_username
更改提示,我希望每当 current_username 更改时提示都会更改。
这是我尝试过的 - 另外,即使使用命令
initialize
提示符更改一次也没关系,因为这样我就可以创建另一个函数,每当 current_username
更改时它会再次更改。
var current_username = "";
var host = "localhost";
var initialized = "False";
var prompt1 = current_username + "@" + host + "> ";
$('body').bind('keydown', function(e) {
if (event.keyCode == 13 && initialized == "False") {
alert('Enter command "initialize".')
initialized = "True"
return false;
}
});
var term = $('body').terminal({
initialize: async function() {
term.set_prompt(prompt1)
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.39.3/js/jquery.terminal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.39.3/css/jquery.terminal.min.css"/>
如果您想更改每个命令后的提示并使其动态化,您可以使用函数作为提示:
var current_username = "";
var host = "localhost";
var initialized = "False";
var prompt1 = () => current_username + "@" + host + "> ";
var term = $('body').terminal({
initialize: async function() {
term.set_prompt(prompt1);
},
'set-user': function(name) {
current_username = name;
}
}, {
completion: true
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.39.3/js/jquery.terminal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/2.39.3/css/jquery.terminal.min.css"/>