2013-12-15 7 views
0

Следующий скрипт открывает приглашение JS с текстом на новой вкладке, и я хотел бы, чтобы он делал то же самое, только в новом окне. Что мне нужно изменить, чтобы добиться этого?JS prompt открывается в новом окне сафари?

set searchTerm to “ebay” 

    do shell script "/usr/bin/osascript -e 'delay 1' -e 'tell application \"System   Events\" to keystroke \"" & searchTerm & space & "\"' > /dev/null 2>&1 &" 

    tell application "Safari" 
     activate 
     set newTab to make new tab in window 1 
     set current tab of window 1 to newTab 
     do JavaScript   "javascript:Qr=prompt('','');if(Qr)location.href='http://www.yubnub.org/parser/parse?  command='+escape(Qr)" in current tab of first window 
    end tell 
+0

Я попробовал это, и это открывает строку в новом окне, но когда я нажимаю войти, он перескакивает на первую страницу и открывает его там. скажите приложение "Safari" \t сделать новый конец документа сказать набор SEARCHTERM на "Ebay" сделать скрипт «/ USR/BIN/osascript -e 'задержки 1' -e«сказать приложение \ "Системные события \" для нажатие клавиши \ "" & SEARCHTERM & пространство & "\"»>/DEV/нуль 2> & 1 & " Телль приложение "Сафари" \t активировать \t сделать JavaScript" JavaScript: Qr = строки ('', '') ; if (Qr) location.href = 'http: //www.yubnub.org/parser/parse? command =' + escape (Qr) "в документе 1 end tell – Elias

+0

Вы вызываете AppleScript внутри сценария оболочки внутри сценарий Apple. Есть ли какая-то особая причина? Я бы порекомендовал поставить «delay 1» и «сообщить приложение« System Events »« ... внизу вашего существующего скрипта – AriX

ответ

1

Все, что вам нужно сделать, это новый документ

set searchTerm to "ebay" 

do shell script "/usr/bin/osascript -e 'delay 1' -e 'tell application \"System   Events\" to keystroke \"" & searchTerm & space & "\"' > /dev/null 2>&1 &" 

tell application "Safari" 
    activate 
    set thisWindow to make new document 
    tell thisWindow to do JavaScript "javascript:Qr=prompt('','');if(Qr)location.href='http://www.yubnub.org/parser/parse?  command='+escape(Qr)" 

end tell 
+0

Спасибо. Сценарий, который вы опубликовали, именно то, что я пытался сделать. Он работает только тогда, когда Safari не находится в полноэкранном режиме. Когда он находится в полноэкранном режиме, он открывает приглашение в новом окне, и как только я нажимаю клавишу ввода, он переходит в предыдущее окно и переходит на страницу вместо этого нового окна, которое оно создало. Поскольку полноэкранный режим является моим предпочтительным методом просмотра, любые идеи, почему это работает в полноэкранном режиме? – Elias

+1

Я понял. После замены последней части на «thiswindow» все работает сейчас. set searchTerm to "ebay" do shell script "/ usr/bin/osascript -e 'delay 1.4' -e 'сообщить программе \" Системные события \ "нажатию клавиши \" "& searchTerm & space &" \ "'>/DEV/нуль 2> & 1 & " Телль приложение "Сафари" \t активировать \t набор thisWindow сделать новый документ \t сделать JavaScript" JavaScript: Qr = быстрое ('', ''); если (Qr) расположение .href = 'http: //www.yubnub.org/parser/parse? command =' + escape (Qr) "в этомWindow end tell – Elias

+0

Удивительно, я рад, что вы поняли, что я хотел сделать это как сказать thisWindow, чтобы сделать Javascript – mcgrailm

-1

Ничто не может сделать автор в открывшемся окне вместо новой вкладки.

+0

Прошу прощения за формулировку, что неправильно, но заявление, которое я сказал, работает в любом случае, вы не можете решить Если это новая вкладка или новое окно, это то, что определяется пользователем в настройках браузера. – user3078477

+0

Извините за любую путаницу. Ниже приведен исходный сценарий, который открывается на текущей вкладке. Выше было изменено, чтобы открыть его на новой вкладке. Я просто пытаюсь открыть его таким же образом, только в новом окне. set searchTerm to "ebay" do shell script "/ usr/bin/osascript -e 'delay 1' -e 'сообщить приложению \" Системные события \ "нажатию клавиши \" "& searchTerm & space &" \ "'>/DEV/нуль 2> & 1 & " Телль приложение "Сафари" \t активировать \t сделать JavaScript" JavaScript: Qr = быстрое ('', ''); если (Qr) location.href = "HTTP: // www.yubnub.org/parser/parse?command='+escape(Qr) "на текущей вкладке в первом окне end tell – Elias

Смежные вопросы