2011-07-03 7 views
6

Próbuję dowiedzieć się, dlaczego mój Applescript nie robi nic, gdy działa ten sam kod javascript wpisany w pasku lokalizacji Safari.dlaczego nie wykonuje wywołania javascript w Applescript, gdy ten sam kod wpisuje się w przeglądarce?

Przejdź do strony wyników wyszukiwania, na przykład: http://www.google.com/search?q=test. Dla poprawnego zachowania, wpisz w pasku adresu i naciśnij enter:

javascript: document.getElementsByClassName('vspib')[0].click(); 

Zobaczysz, że wybiera szkło powiększające dla pierwszego wyniku wyszukiwania.

Oto, co chcę zrobić za pośrednictwem javascript. Napisałem więc:

tell application "Safari" 
    activate 
    do JavaScript "document.getElementsByClassName('vspib')[0].click();" in document 1 
end tell 

Jednak nie robi nic. Jakieś pomysły?

Odpowiedz

14

Problem polega na tym, że do JavaScript musi poprawnie adresować kartę w oknie przeglądarki Safari.

Poniższy skrypt działa na mnie, jeśli strona wyników wyszukiwania jest obecny w zakładce zrównuje okna Safari:

tell application "Safari" 
    activate 
    set theScript to "document.getElementsByClassName('vspib')[0].click();" 
    do JavaScript theScript in current tab of first window 
end tell 
+3

dzięki tak dużo. z jakiegoś powodu twój kod nie działał za każdym razem, ale ta modyfikacja zakończyła się robieniem: uruchom aktywną kartę okna przedniego javascript "document.getElementsByClassName ('vspib') [0] .click();" – mix

+0

@mix to działa dla mnie! – FrontENG

Powiązane problemy