首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用OS X JavaScript打开新的终端标签以实现自动化

使用OS X JavaScript打开新的终端标签以实现自动化
EN

Stack Overflow用户
提问于 2014-12-13 04:38:11
回答 3查看 1.9K关注 0票数 1

我正在使用JavaScript在OS上实现自动化。

我正在尝试在终端应用程序中打开一个新的选项卡。这是我到目前为止所得到的:

代码语言:javascript
运行
复制
var Terminal = Application('Terminal);
var Tab      = Terminal.Tab;

// Activate the Terminal App, creates a new window if there isn't one already
Terminal.activate();

// This contains all the windows
Terminal.windows;
// This contains the first window
Terminal.windows.at(0) // alternatively, Terminal.windows[0]

// This contains the tabs in the first window
Terminal.windows.at(0).tabs

Terminal.windows.at(0).tabs本质上是一个数组。它有一个.push方法。我假设我可以使用以下语句向窗口添加一个选项卡:

代码语言:javascript
运行
复制
Terminal.windows.at(0).tabs.push(new Tab());

但是它抛出了一个非常普遍的错误:

代码语言:javascript
运行
复制
Error -10000: AppleEvent handler failed.

文档严重缺乏,我认为这个自动化的JavaScript只是一个吸引JavaScript开发人员的花招。

注意:我见过的AppleScript解决方案基本上只是告诉System Events应用程序按下Command +T打开一个新的选项卡。这感觉非常麻烦,并使Command +T硬编码在其中。

EN

回答 3

Stack Overflow用户

发布于 2015-01-13 22:39:15

以下代码适用于chromesafari,但不适用于terminal,我仍在找出原因,看看这些信息是否有帮助。

代码语言:javascript
运行
复制
chrome = Application("Google Chrome")
newTab = chrome.Tab()
chrome.windows[0].tabs.push(newTab)
票数 1
EN

Stack Overflow用户

发布于 2015-09-19 11:31:25

看看以下方法是否适用于您的情况:

代码语言:javascript
运行
复制
var system = Application('System Events');
var terminal = Application('Terminal');

// tell application "Terminal" to activate
terminal.activate();  

// tell application "System Events" to tell process "Terminal" to keystroke "t" using command down
system.keystroke('t', {using: 'command down'});
票数 1
EN

Stack Overflow用户

发布于 2016-02-28 09:59:02

您可以模拟一个新选项卡的快捷方式。还需要声明目标选项卡

代码语言:javascript
运行
复制
tell application "System Events" to keystroke "t" using {command down}

查看具有两个或更多选项卡的示例

代码语言:javascript
运行
复制
teel application "Terminal"
    do script "cd ~/ && ls" in tab 1 of front window
    tell application "System Events" to keystroke "t" using {command down}
    do script "cd ~/Applications && ls" in tab 2 of front window
end tell
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27451735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档