Macの手書き説明書

macOSのアプリ紹介と基本的な使い方を解説

Safariの機能拡張を無効にするAppleScript

LastPassの自動ログイン機能を大体のサイトで有効にしているのですが、普段使わないようなアカウントでログインしたい場合、一度LastPassの機能拡張を環境設定から無効にしてアクセスせねばならず面倒です。

LastPass以外にも何らかの機能拡張のせいでWebサイトの動作がおかしくなることがあります。

そういう場合、機能拡張を個別に無効にするのではなく、メニューから機能拡張全てを無効にするほうが操作が簡単です。

「開発」 > 「機能拡張を無効にする」

safari_extension_applescript

「開発」メニューはSafariの「環境設定」 > 「詳細」 > 「メニューバーに"開発"メニューを表示」から有効にしておかないと表示されません。

これで簡単に機能拡張を無効にできるようになりましたが、マウス操作をしなければなりません。

マウス操作は極力したくないので、この操作を代わりにやってくれるAppleScriptを考えてみました。

if runningProcess("Safari") then

set defaultLanguage to defaultLanguageCheck()
tell application "System Events"
tell process "Safari"
activate
set frontmost to true
if defaultLanguage is "ja" then
click menu bar 1's menu bar item "開発"
click menu item "機能拡張を無効にする" of menu 1 of menu bar 1's menu bar item "開発"
else if defaultLanguage is "en" then
click menu bar 1's menu bar item "Develop"
click menu item "Disable Extensions" of menu 1 of menu bar 1's menu bar item "Develop"
end if
end tell
end tell
end if

on defaultLanguageCheck()
try
set aRes to paragraphs of (do shell script " defaults read -g AppleLanguages")
set defaultLangurage to item 2 of aRes
set bRes to repChar(defaultLangurage, ",", "") of me
set cRes to repChar(bRes, " ", "") of me
return cRes
on error
return "error"
end try
end defaultLanguageCheck

--Written By Philip Aker
--文字置換ルーチン
on repChar(origText, targStr, repStr)
set {txdl, AppleScript's text item delimiters} to {AppleScript's text item delimiters, targStr}
set temp to text items of origText
set AppleScript's text item delimiters to repStr
set res to temp as text
set AppleScript's text item delimiters to txdl
return res
end repChar

on runningProcess(appName) --return true or false

tell application "System Events"

if application process appName exists then
return true
else
return false
end if

end tell

end runningProcess

スクリプトを実行するたびに機能拡張を無効 ⇔ 有効を切り替えます。

アプリケーションとして保存したり、LaunchBarやAlfredから利用すると便利。

GUIスクリプティングを利用しているので、「システム環境設定」 > 「プライバシー」 > 「アクセシビリティ」でコンピューターの制御を許可する必要があったり、Safariのバージョンによっては動かない場合があります。

参考にさせていただいたサイト:International Settingsの言語で第一優先になっているものを取得

広告


関連記事

広告

この記事を共有する

広告

関連記事

1 Comments

名無しのにゅうす  

システム環境設定-キーボード-ショートカット
で「機能拡張を無効にする」にショートカットキーを割り当てれば簡単にできますよ

2016/07/05 (Tue) 12:17 | EDIT | REPLY |   

Add your comment