%20%E5%B0%87%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F%E7%BD%AE%E6%96%BC%E5%89%8D%E5%8F%B0.png)
我正在嘗試找到一種方法,根據網頁中發生的事件自動將網頁瀏覽器置於前面(即給予其焦點,使其在螢幕上可見)。我可以完全控制該網頁,因此我可以讓它執行我需要的任何操作來觸發此操作。
我需要打開幾個應用程序,並在後台打開一個網頁,該網頁正在監視一些攝影機。當攝影機移動時,我需要將網頁瀏覽器視窗移到前面,以便它可見,而不是正在使用的任何應用程式。
我在想類似這個人試圖做的事情:如何在 Mac OS X Lion 上每 15 分鐘將應用程式置於前台?
我正在考慮使用 AppleScript 連續循環運行,每秒檢查 Safari 中打開的頁面,掃描一些更改,然後向 Safari 發送“激活”命令以將其置於前面。這是我應該如何解決這個問題,還是有更好的方法?
答案1
我可能只使用 launchd 或 cron 而不是將腳本作為後台進程運行。
在 AppleScript 編輯器中的某個位置儲存這樣的腳本:
try tell application "Safari" tell document 1 where name starts with "Webcam" to do JavaScript "--" if result is "--" then activate end tell end
像這樣儲存屬性列表
~/Library/LaunchAgents/com.superuser.443513.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.superuser.443513</string> <key>ProgramArguments</key> <array> <string>osascript</string> <string>/Users/username/Library/Scripts/script.scpt</string> </array> <key>StartInterval</key> <integer>5</integer> <!-- every 5 seconds --> </dict> </plist>
launchctl load ~/Library/LaunchAgents/com.superuser.443513.plist
你能用curl來檢查條件嗎?您可以透過編輯 crontabEDITOR=nano crontab -e
並新增以下行每隔一分鐘執行一次:
*/2 * * * * [[ -n "$(curl -L http://superuser.com/questions/443513 | grep automate)" ]] && open http://example.com