用于自动显示对话框的Mac OS X Javascript

用于自动显示对话框的Mac OS X Javascript,javascript,macos,automation,javascript-automation,Javascript,Macos,Automation,Javascript Automation,我试图为我正在处理的工作流显示一个简单的对话框,但是使用JXA我不断得到错误:应该是对象说明符,参数没有对象说明符。我不知道为对象说明符传递什么。下面是我的代码,它在我调用对话框的第11行出现问题 function run() { app = Application.currentApplication(); app.includeStandardAdditions = true; //Error Here var who = app.displayDialog

我试图为我正在处理的工作流显示一个简单的对话框,但是使用JXA我不断得到错误:应该是对象说明符,参数没有对象说明符。我不知道为对象说明符传递什么。下面是我的代码,它在我调用对话框的第11行出现问题

function run() {

    app = Application.currentApplication();
    app.includeStandardAdditions = true;
    //Error Here
    var who = app.displayDialog('Whose server is this?', {
        withTitle: 'Whose Server...'
    })

    return who
}
阅读这篇非官方的文章,它可以帮助我了解这些警觉的事情

详情如下:

function prompt(text, defaultAnswer) {
  var options = { defaultAnswer: defaultAnswer || '' }
  try {
    return app.displayDialog(text, options).textReturned
  } catch (e) {
    return null
  }
}
来自Gary@macmost.com@8:47


我将您的代码1:1复制到脚本编辑器并切换到JavaScript。在10.10.3,一切正常!就我的2分你点击取消按钮了吗?这可能会产生一个错误,正如@ShooTerKo所说:这段代码看起来非常好。您的问题是因为使用了预发布版本吗?你知道问题出在哪里了吗?没有。我切换到传统的apple script++来获取链接和方便的函数,但是你的答案并不能解释OP的问题(这很神秘,因为他的代码看起来非常好)。
app = Application.currentApplication();
app.includeStandardAdditions = true;

color = app.displayDialog("What is your favorite color?", { defaultAnswer: "" }).textReturned;

if (color == "red") {
    app.displayDialog("I like red too!");
} else {
    app.displayDialog("Interesting, I like red myself.");
}