2014-04-22 6 views
5

Also, ich habe ein einfaches Problem, das möglicherweise nicht in AppleScript möglich ist. Ich versuche, eine Variable von einem JavaScript zurückzugeben, das keine Rückgabe im Code hat. Mit anderen Worten, ich versuche, den Status eines Elements zu erhalten, so dass ich eine Funktion bedingt ausführen kann. Hier ist der Code, den ich habe, die nicht eine Rückkehr bekommen:Rückgabe Javascript-Variable zu 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 

Also, im Grunde Ich versuche, den Wert von obj zu bekommen und sende es an Applescript, die zwischen 0 und 255 (es ist ein Knopf sein sollten). Das Problem ist, ich habe keine Kontrolle über die JavaScript-Funktion, so dass ich keine return obj.value hinzufügen kann. Ist das möglich?

Antwort

1

Entfernen Sie die "Rückkehr" sowie die "var". "Do JavaScript" gibt den letzten globalen Wert zurück. Dies sollte zum Beispiel 7.0 zurück:

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 

Dies sollte jedoch 3,0 zurückkehren, wie das ist der letzte globalen Wert:

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