標籤:

利用AppleScript快速切換瀏覽器

在 mac 上,我的主力瀏覽器是 Safari。聽喬幫主的話,我不安裝 flash 插件。

儘管相當一部分以 YouTube 為代表的視頻網站早已支持 HTML5,但還是免不了在用 Safari 打開國內某些「主流」視頻網站時會甩給我如下畫面。

愛奇藝:

優酷:

除了安裝客戶端之外,一個相對輕量級的解決方案是,用 Chrome 打開並允許 flash 載入,這樣既避免了我在 Safari 下被 flash 困擾,又能保證在偶爾不得不閱覽 flash 資源時能立刻滿足需求。

把當前的網址從 Safari 移到 Chrome,如果是游標流的話,可以通過:

開啟「開發」菜單 → 開發 → 頁面打開方式 → GoogleChrome.app

來實現。如果是鍵盤流的話:

?+L → ?+C → ?+space → g(oogle chrome) → (?+L) → ?+V → return

看似簡單,但操作多了會覺得煩心無比。其實最讓人煩心的並不是擊鍵或游標操作次數,而是人眼需要在 Safari 菜單欄、地址欄、Spotlight 提示欄、Chrome 窗口狀態、標籤狀態、地址欄狀態之間來回移動,並以人腦判斷確保操作的正確性。換句話說,這是一個「閉環」的操作,需要人眼+人腦的「反饋」,這是心煩的根結。

於是想讓這個閉環操作變成開環,即人僅僅給出指令,而不參與指令的操作過程。而在 mac 下最適合用 AppleScript 來解決這個小問題。

tell application "Safari"tn set myURL to URL of current tab of front windownend tellnntell application "Google Chrome"ttn if (count windows) is 0 thenttn make new windowttn set URL of tab 1 of window 1 to myURLtn elsen activate front windowttn make new tab at front windowttn set URL of tab (count tabs of front window) of front window n to myURLtn end iftnend telln

考慮到腳本執行前Chrome可能沒有窗口打開的情況,程序中用 count windows 的結果來輔助判斷,並在多窗口的情況下,將新的 tab 建立在最上方的窗口 (front window) 中。

注意 AppleScript 下 statement 的斷行需要使用 ?+return。

導出為 s2google.app,當需要將當前網頁地址送給 Chrome 打開時,僅需要操作:

?+Space → s2g(oogle.app) → return

即可。

當然,也可以把腳本包裝進 Automator 里,並配置一個全局快捷鍵;或者直接在系統設置中為開發菜單配app shortcut,操作會更加便捷,但唯一的缺點是需要得額外記憶一組快捷鍵。


此文主要目的是推薦 apple script 和交流思路,使用與否並不是最重要的。我也會根據回復更新文章內容,持續學習和改進,歡迎提出寶貴意見。


推薦閱讀:

如何評價《感謝 Gatekeeper: 蘋果的 Mac OS X 一直對惡意軟體開放》?
利用AppleScript快速啟動mpv打開網頁視頻
剛從 Windows 轉到 macOS,如何快速上手操作?

TAG:macOS | AppleScript |