2014-04-22 15 views
5

Mam więc prosty problem, który może nie być możliwy w AppleScript. Próbuję zwrócić zmienną z javascript, który nie ma zwrotu w kodzie. Innymi słowy, próbuję uzyskać status elementu, aby móc uruchomić funkcję warunkowo. Oto kod mam, że nie będzie uzyskać zwrot:Powróć zmienną JavaScript do AppleScript

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 

Więc w zasadzie staram się uzyskać wartość obj i odesłać go do AppleScript, która powinna wynosić od 0 do 255 (to jest przycisk). Problem polega na tym, że nie mam żadnej kontroli nad funkcją javascript, więc nie mogę dodać return obj.value. czy to możliwe?

Odpowiedz

1

Usuń "return" oraz "var". "Do JavaScript" zwróci ostatnią wartość globalną. To, na przykład, powinien powrócić 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 

to jednak należy zwrócić 3,0, jak to jest ostatnia globalny wartość:

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