将 Javascript 变量返回到 AppleScript

Posted

技术标签:

【中文标题】将 Javascript 变量返回到 AppleScript【英文标题】:Return Javascript variable to AppleScript 【发布时间】:2014-04-22 16:01:32 【问题描述】:

所以,我有一个在 AppleScript 中可能无法解决的简单问题。我正在尝试从代码中没有返回的 javascript 返回一个变量。换句话说,我正在尝试获取元素的状态,以便有条件地运行函数。这是我没有得到回报的代码:

tell application "Safari"
    activate
    open location "http://127.0.0.1:9999"
    delay 1
    set myVar to do JavaScript "var obj = document.getElementById(87); myVar = obj.value; return myVar;" in document 1
    return myVar
end tell

所以,基本上我正在尝试获取obj 的值并将其返回给AppleScript,它应该在0 到255 之间(它是一个按钮)。问题是,我无法控制 javascript 函数,所以我无法添加 return obj.value。这可能吗?

【问题讨论】:

【参考方案1】:

删除“return”以及“var”。 “do JavaScript”将返回最后一个全局值。例如,这应该返回 7.0:

tell application "Safari"
    activate
    open location "http://www.hoboes.com/Mimsy/"
    delay 1
    set myVar to do JavaScript "numbervalue=3;fred=numbervalue+4" in document 1
    return myVar
end tell

然而,这应该返回 3.0,因为这是最后一个 global 值:

tell application "Safari"
    activate
    open location "http://www.hoboes.com/Mimsy/"
    delay 1
    set myVar to do JavaScript "numbervalue=3; var fred=numbervalue+4" in document 1
    return myVar
end tell

【讨论】:

以上是关于将 Javascript 变量返回到 AppleScript的主要内容,如果未能解决你的问题,请参考以下文章

将Javascript PageMethods“返回值”存储到变量中

从 javascript onclick 返回值到变量或使用 onclick 更改全局变量

使用 xml 将 javascript 变量发布到服务器

如何将javascript变量传递给嵌入式ruby?

如何将递归函数的返回值保存在变量 JavaScript 中

逗号代码和字符图网格