将 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“返回值”存储到变量中