我正在尝试编写 AppleScript,它可以判断 Safari 窗口是否处于私有(private)模式。以下是在 Chrome 中执行此操作的 AppleScript:
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
查看是否选中隐私浏览菜单选项的旧解决方案不再有效。
最佳答案
Safari 中有一个怪癖,可用于确定是否启用私有(private)模式:Safari 不允许在私有(private)模式下使用 localStorage.setItem(请参阅 related StackOverflow post )。我们可以通过使用 AppleScript 中的 JavaScript 片段来利用这一点。如果不支持 localStorage,JavaScript 会抛出一个错误(由 try/catch block 捕获),我们用它来设置 bool 值。
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 中设置适当的目标窗口/选项卡。
关于cocoa - 在 AppleScript 中检测 Safari 私密浏览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42182648/