我正在尝试找到一种方法,根据网页中发生的事件自动将网络浏览器置于最前面(即 - 使其获得焦点,使其在屏幕上可见)。我可以完全控制网页,因此我可以让它做任何我需要做的事情来触发这一点。
我需要打开几个应用程序,并在后台运行一个网页来监控一些摄像机。当摄像机移动时,我需要让网络浏览器窗口移到最前面,这样才能看到它,而不是正在使用的任何应用程序。
我在想一些与这个家伙试图做的事情类似的事情:如何在 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