2014-04-22 17 views
5

Bu yüzden AppleScript'te mümkün olmayan basit bir sorun var. Kodda geri dönüşü olmayan bir javascript'ten bir değişken döndürmeyi deniyorum. Diğer bir deyişle, bir öğenin durumunu elde etmeye çalışıyorum, böylece bir işlevi koşullu olarak çalıştırabilirim.Javascript değişkeni AppleScript'e dönüş

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 

Yani, temelde ben obj değerini almak ve 0 ile 255 arasında olmalıdır AppleScript, iade çalışıyorum (bir düğme var: Burada bir dönüş almazsınız Ben kodudur). Sorun şu ki, javascript işlevi üzerinde herhangi bir denetimim yok, bu yüzden return obj.value ekleyemiyorum. Mümkün mü?

cevap

1

“Var” ve “var” öğelerini kaldırın. “JavaScript yap” son global değeri döndürecektir. Bu, örneğin, 7.0 dönmelidir:

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 

Ancak bu, 3.0 dönmelidir, bu son küresel değer olarak:

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