снова об уровне масштабирования в Safari

О способе изменить стандартный уровень масштабирования в Safari мы уже писали — на самом деле для этого достаточно CSS-шаблона из трех строк. Проблема заключается в том, что такой вариант с CSS-хаком не идеален и, главное, не совсем соответствует встроенной в Safari функции масштабирования, поэтому альтернативное решение поставленной задачи придется решать при помощи AppleScript:

repeat
  try -- we have to try, since safari might not be running, and theUrl might not be defined
    if frontmost of application "Safari" then
      tell application "Safari"
        set theUrl to URL of current tab of window 1 -- window 1 is apparently always the active window in Safari
      end tell
      if theUrl is not "" then -- this will ignore new tabs where a page is not yet loaded
        tell application "System Events"
          tell process "Safari"
            -- these may differ according to the OS X language
            set activeMenuItem to enabled of menu item "Actual Size" of menu "View" of menu bar item "View" of menu bar 1
          end tell
          if not activeMenuItem then
            -- here we fire off the key shortcuts 
            -- these may differ according to the OS X language
            keystroke "+" using command down
            keystroke "+" using command down
          end if
        end tell
      end if
    end if
  end try
  delay 0.1 -- how many seconds to wait until next check
end repeat

В общем-то, выложенный абзацем выше код — тоже хак: мы запускаем бесконечный цикл, в котором система каждые 100 миллисекунд (этот параметр можно настраивать) удостоверяется, что текущий таб Safari открыт в масштабе 100%. В этом случае скрипт сымитирует нажатие шортката «Zoom page» (клавиши Command и «+») нужное количество раз, наращивая уровень увеличения:


Краткое содержание представленного выше виделсюжета: превращенный в app-файл Zoom Safari скрипт запущен, и в новом окне браузера загружается страничка с Macosxhints.com, которая вскорости последовательно увелчивается в несколько раз. Попытки вернуть шорткатом Cmd-0 сайт в исходное состояние почти мгновенно сводятся на нет продолжающим работать скриптом.

При прописанных в исходном коде одной десятой секунды интервала запущенный из AppleScript Editor скрипт отъедает от одного до пяти процентов ресурсов процессора. Умерить такой аппетит можно, сохранив и запустив скрипт в виде приложения — теперь потребности заскриптованного хака ограничатся примерно полутора процентами:

Источник: Mac OS X Hints

Обсуждение

Оставить сообщение
Обсуждение на форуме целиком