2017-02-11 57 views
0

我正在嘗試編寫AppleScript,它會告訴您Safari的某個窗口是否處於私人模式。下面是Chrome瀏覽器中的AppleScript:在AppleScript中檢測Safari瀏覽器隱私

tell application "Google Chrome" 
    set incognitoIsRunning to the (count of (get every window whose mode is "incognito")) is greater than 0 
end tell 

if (incognitoIsRunning) then 
    return "-- PRIVATE MODE --" 
end tell 

查看隱私瀏覽菜單選項是否已被選中的舊解決方案不再有效。

回答

1

Safari中存在一個怪癖,可以利用它來確定是否啓用私人模式:Safari不允許在私人模式下使用localStorage.setItem(請參閱related StackOverflow post)。我們可以通過使用AppleScript中的JavaScript代碼片段來利用這一點。如果localStorage不被支持,JavaScript會拋出一個錯誤(由try/catch塊捕獲),我們用它來設置布爾值。

tell application "Safari" 
    set checkMode to " 
     var isprivate = false; 
      try { 
       window.localStorage.setItem('foobar', 1); 
      } catch(e) { 
       isprivate = true; 
      } 
     isprivate; 
" 
    set isPrivate to do JavaScript checkMode in current tab of first window 
end tell 

log isPrivate 

當然,您需要調整此AppleScript以在Safari中設置適當的目標窗口/選項卡。

+2

這不再適用於Safari 11.0版本。 –