如何保持AppleScript运行并重定向网址?

时间:2015-10-31 14:56:41

标签: applescript

我有这个代码,我可以继续在脚本编辑器中运行。但它导致我的笔记本电脑粉丝尖叫!所以我不确定这是做正确的方法吗?

repeat until application "Google Chrome" is not running
    if application "Google Chrome" is running then
        tell application "Google Chrome"
            set (URL of every tab of every window where URL is equal to "facebook.com") to "twitter.com"
        end tell
    end if
end repeat

其他问题是为什么我的代码不起作用?我想用它来从特定网址重定向到另一个网址。但即使这个实现也不起作用。如果我打开facebook.com,它不会重定向到twitter.com。

感谢任何帮助。

注意:是的,我想使用applescript来关注它,请注意:)

1 个答案:

答案 0 :(得分:2)

当应用程序看起来有效但似乎不符合其条件时,查看要检查的实际值总是有帮助的。在这种情况下,打开您认为应该匹配的URL,然后获取该URL以查看。

tell application "Google Chrome"
    get URL of tab 1 of window 1
end tell

当我在Chrome的新窗口中输入“Facebook.com”,然后运行上面的脚本时,我发现的是https://www.facebook.com/?_rdr=p

当我用https://www.facebook.com/?_rdr=p替换代码示例中的“Facebook.com”时,脚本现在有了影响;它被重定向到Chrome的页面。

从条件中使用完整URL的必要性中得到提示,我将“twitter.com”切换为“http://twitter.com/”。

该脚本现在按照我的理解执行:每个匹配https://www.facebook.com/?_rdr=p的窗口中的每个标签都会重定向到twitter.com。

repeat until application "Google Chrome" is not running
    if application "Google Chrome" is running then
        tell application "Google Chrome"
            set (URL of every tab of every window where URL is equal to "https://www.facebook.com/?_rdr=p") to "http://twitter.com/"
        end tell
    end if
end repeat

Applescript和Google Chrome会将条件文字与完整网址相匹配,因此您的条件也必须使用完整网址。

@ vadian关于使用空闲处理程序的说明非常好。有关使用空闲处理程序的建议,请参阅this Hourly Pop-up Alert question。这样的事情应该有效:

on idle
    if application "Google Chrome" is running then
        tell application "Google Chrome"
            set (URL of every tab of every window where URL is equal to "https://www.facebook.com/?_rdr=p") to "http://twitter.com/"
        end tell
    end if

    --number of seconds to wait for the next check
    return 1
end idle

另存为应用程序,在运行处理程序后保持打开状态。