所以我一直致力于一个与我的一些编码朋友混在一起的项目。我正在尝试创建一个AppleScript应用程序,告诉Chrome在运行时返回页面,我希望它一直运行。我不得不根据Chrome是否有活动窗口打开,我设法让它工作到目前为止,但是当我放入重复的“返回”命令时,它会出现一条错误消息,说明可以得到窗口1。
这是我正在使用的代码。如果有所作为,我正在使用High Sierra。
repeat
if application "Google Chrome" is running then
repeat
tell application "Google Chrome"
if exists (window 1 of application "Google Chrome") then
repeat while exists (window 1 of application "Google Chrome")
go back tab of window 1
end repeat
end if
end tell
end repeat
end if
end repeat
答案 0 :(得分:0)
没有。这不是如何实现保持打开脚本。做无休止的重复循环而无法退出它们只会吞噬系统资源并使 Google Chrome 无法使用,直到脚本被迫退出。
此外,代码非常可怕:大量冗余语句和令人困惑的语法。
您最好通过创建所谓的 保持打开 应用程序脚本来实现您的目标,该脚本将使用idle
处理程序来处理命令几秒钟左右。顾名思义,脚本将保持打开并执行命令,直到您告诉它退出。
首先声明一个属性,该属性确定调用idle
处理程序的频率。这是在run
处理程序的底部定义的,该处理程序在运行脚本时执行并调用idle
处理程序。
property idleTime : 20 --seconds
on run
idle
end run
on idle
tell application "Google Chrome"
if it is not running then return idleTime
tell window 1 to if it exists then ¬
tell its active tab
if its URL contains "disney" then ¬
tell me to quit
set its URL to "chrome://newtab/"
end tell
end tell
return idleTime
end idle
我略微修改了你吸引朋友的笑话,因为go back
只会在你到达历史结束之前工作很多次,并且没有进一步的回复。相反,我告诉标签每20秒加载 New Tab 起始页面,我相信这对用户来说会非常混乱。
为了使其正常运行,您需要将脚本另存为应用程序,并选中将其标记为保持打开脚本的框。然后只需双击即可运行它。
有两种方法可以终止此脚本:①打开活动监视器并从正在运行的进程列表中终止其进程;或②访问 Chrome 中的Disney.com(或任何迪士尼网站),等待20秒。
答案 1 :(得分:0)
只需将此代码保存为逗留打开的应用程序。
$(
'<input type="text" class="form-control quantity" '+
'th:field="*{projectTasks[__'+index+'__].taskName}">'
).appendTo('#task');