2012-01-26 4 views
0

URL을 팝업 스타일 창에서 열려고합니다. 아래의 스크립트는 정상적으로 작동하지만 사용자가 아직 어떤 창이 열리지 않으면 작동하지 않습니다. 내 질문은 것 같아요, 활성 창없이 Javascript 실행할 수 있습니까?applescript를 통해 새 javascript 창 열기 기존 창없이 기존

tell application "Safari" 
activate 
set theURL to "http://www.google.com" 
do JavaScript ("window.open('" & theURL & "','_blank','titlebar=0');") in document 1 
end tell 

가 난 그냥 자바 스크립트 전에 새 창을 엽니 다 가질 수 있지만, 그렇게하지 않고 존재 단지 팝업 창에 적합하다.

아이디어가 있으십니까?

답변

0

(Mac OS X 10.6.8 & Safari 5.1.2 실행) 솔루션의 핵심은 reopen 명령입니다. Safari가 실행 중인지 여부에 관계없이 홈페이지를 표시하는 새로운 Safari 창이 나타납니다. 자바 스크립트를 실행하려면 페이지 ("문서")가 필요합니다.

팝업 창을 여는 자바 스크립트 명령을 내기 위해 해당 창을 열었으므로 변수에서이를 기억하고 나중에 닫아서 제거 할 수 있습니다. 이것은 물론 선택 사항이며 스크립트 실행시 열린 Safari 창이없는 경우에만 의미가 있습니다. count every window을 통해 쉽게 테스트 할 수 있습니다.

tell application "Safari" 
    reopen -- unlike activate, this opens a window 
    set theURL to "http://www.google.com" 
    set currentTab to tab 1 of window 1 
    do JavaScript ("window.open('" & theURL & "','_blank','titlebar=0');") in document 1 
    close currentTab 
end tell 
+0

다른 창이 열려 있으면 "다시 열기"가 예상대로 작동하지 않는 것으로 나타났습니다. 대신'make new document'를 사용하십시오. – dougnorton