如何在jQuery Terminal中实现可执行命令的点击链接?
问题:jQuery Terminal 点击文本执行命令而非跳转外部链接
我在使用jQuery Terminal时,想要让showMenu函数中通过consoleObj.echo输出的"about"文本,点击后执行about命令/函数,而非跳转到外部链接。已在终端配置中设置anyLinks: true,相关代码如下:
// 菜单函数 function showMenu(consoleObj) { consoleObj.echo("\t[[!;;]about] learn more about whatever"); // ... 其他代码 } // 终端配置 $('.terminal').terminal({ anyLinks: true, menu: function() { showMenu(this); }, // ... 其他命令配置 });
已尝试的写法(均无效,点击后仍跳转到/about页面):
consoleObj.echo("\t[[!;#fff;;#about]about] learn more about whatever");
consoleObj.echo("\t[[!;#fff;;about]about] learn more about whatever");
consoleObj.echo("\t[[!;#fff;;!about]about] learn more about whatever");
解决方案
要让点击文本执行终端命令,需明确使用cmd:前缀标记链接为命令触发,而非URL跳转。修正后的代码如下:
consoleObj.echo("\t[[!;#fff;;cmd:about]about] learn more about whatever");
如果不需要自定义样式(颜色、背景等),可以简化为:
consoleObj.echo("\t[[cmd:about]about] learn more about whatever");
原理说明:当anyLinks: true开启时,终端会默认将不带协议的文本识别为URL路径跳转。通过添加cmd:前缀,终端会将其解析为内部命令,点击时直接执行对应的about函数/命令,而非跳转页面。
内容的提问来源于stack exchange,提问作者JAT
相关产品推荐
相关产品推荐

