Как перезагрузить / обновить веб-страницу, не выходя из среды разработки веб-приложений? - PullRequest
27 голосов
/ 13 января 2011

Создание сайтов

При создании сайтов я использую 2 монитора. У меня есть IDE разработки на главном мониторе и веб-страница, открытая на дополнительном экране.

Меня раздражает, что каждый раз, когда мне нужно обновить веб-страницу, мне приходится переходить к моей мыши, переходить на другой экран и нажимать кнопку "Обновить".

Я бы хотел, чтобы сочетания клавиш отображались для перезагрузки веб-страницы всякий раз, когда мне это нужно. Аналогично тому, как Winamp отображает клавиши на общие функции, такие как воспроизведение / пауза и т. Д.

Мое текущее исследование:

Firefox через командную строку

Я обнаружил, что существующим процессом FireFox можно управлять из командной строки, однако лучшее, что он может сделать, - это создать новое окно с определенным URL-адресом.

firefox -remote "openURL(www.mozilla.org, new-tab)"

Документация здесь: https://developer.mozilla.org/en/Command_Line_Options

Перезагрузить каждые

Существует также расширение для Firefox, которое будет периодически обновлять веб-страницу. Однако это приводит к постоянному мерцанию страницы и также приводит к расточительству ресурсов.

https://addons.mozilla.org/en-US/firefox/addon/115/

Однако то, что мне действительно нужно, это либо ....

  • Настраиваемая глобальная горячая клавиша для Firefox / Chrome для перезагрузки текущей выбранной вкладки
  • Расширение браузера, которое может быть запущено по глобальной горячей клавише
  • Команда для перезагрузки текущей выбранной вкладки из командной строки, которую я затем мог бы сопоставить с горячей клавишей (возможно ли добавить дополнительную удаленную команду с расширением?)

Кто-нибудь знает, как я мог это сделать? Спасибо!

Ответы [ 13 ]

19 голосов
/ 14 января 2011

В Windows XP это должно работать:

  • Создайте VBS-файл с именем refresh.vbs:

    Set WshShell = WScript.CreateObject("WScript.Shell") 
    WshShell.AppActivate("Firefox")
    WshShell.SendKeys "{F5}"
    WshShell.AppActivate("TextPad")
    
  • Создайте ярлык для этого файла на рабочем столе.

  • Щелкните правой кнопкой мыши значок ярлыка и перейдите к Properties.

    • На вкладке General нажмите кнопку «Изменить» рядом с «Открыть с помощью». Перейдите к C:\WINDOWS\system32\cscript.exe Выберите Microsoft Script Based Script Host.

    • На вкладке Shortcut введите сочетание клавиш, например, CTRL + ALT + R. В раскрывающемся списке «Выполнить» выберите Minimised.

Теперь, когда вы нажмете CTRL + ALT + R, обновится текущая вкладка в Firefox.

11 голосов
/ 24 мая 2012

Это мой любимый однострочный bash:

while /bin/true ; do inotifywait --recursive --event modify ./ ; echo "reload" | nc -c localhost 32000 ; done

Используется Удаленный контроль Firefox AddOn , который уведомляет об изменениях в текущих файлах каталогов и под ними.Поэтому все, что вам нужно, это сохранить любой файл в проекте, и в тот же момент текущая вкладка Firefox будет перезагружена.Это unix-ish, должно работать на Linux + Mac, если у вас есть inotify, не будет работать на Windows без адаптаций.

11 голосов
/ 08 марта 2012

Я создал простой яблочный скрипт, который я установил в качестве глобальной горячей клавиши, используя Альфред .

Вот яблочный скрипт

tell application "Firefox"
    activate
    tell application "System Events"
        tell process "Firefox"
            keystroke "r" using {command down, shift down}
        end tell
    end tell
end tell

Если вы хотите убедитьсяфокус остается в вашем редакторе, вы можете добавить эти строки.Не забудьте заменить Coda (мой любимый редактор) тем, что вы используете

tell application "Coda"
    activate
end tell
6 голосов
/ 13 января 2011

Для Windows существует инструмент под названием Autohotkey , который позволяет автоматизировать практически все, отправляя коды клавиш и щелчки мышью.Вы можете написать скрипт, который находит окно вашего браузера и отправляет код клавиши для F5.Присвойте этот сценарий глобальной горячей клавише, и все готово.

Чтобы вернуться к предыдущему окну, ваш сценарий должен будет запомнить текущее выбранное окно, обновить браузер и установить фокус обратно на запомненное окно.

5 голосов
/ 13 января 2011

Конечно, доступны горячие клавиши, особенно если IDE и браузер являются единственными программами, между которыми вы переключаетесь.

alt+tab f5 alt+tab

Переключение на ваш браузер, его перезагрузка и возврат обратно.Гораздо быстрее, чем мышка, и вам не нужно беспокоиться о глобальных горячих клавишах или дополнительном программном обеспечении для установки.

4 голосов
/ 15 сентября 2011

Это на самом деле не отвечает на ваш вопрос, но, возможно, делает вашу жизнь немного проще;)

Я только что нашел Stylebot .Хотя он не имеет автоматического завершения и прочего, он может помочь вам с CSS.

Вот скриншот.Боковая панель - это Stylebot.У вас есть базовый режим редактирования, где вы можете быстро редактировать некоторые простые свойства, расширенный режим, где вы можете редактировать простой CSS для выбранного элемента, а с помощью «Редактировать CSS» вы можете редактировать весь CSS для страницы.

enter image description here

4 голосов
/ 10 августа 2011

Существует гораздо лучшее решение для этого, но за счет значительно повышенной сложности.

Selenium (seleniumhq.org) может сделать то, что вы просите.Это среда тестирования браузера с открытым исходным кодом, которая, помимо прочего, позволяет удаленно управлять окном браузера.

Если Selenium звучит так, как будто вы хотите проникнуть в ваш мозг в любом случае, вы можете также изучить его;если нет, я бы придерживался сценариев WSH и Autohotkey.

4 голосов
/ 04 июня 2011

Я использую MS Ergonomic Keyboard, которая имеет функцию макроса клавиш.Я запрограммировал решение Joshs в нем, и оно работает хорошо, вам просто нужно убедиться, что браузер является следующим приложением при переключении с alt-tab.Существует крутой инструмент под названием XRefresh, который почти о каждой мечте разработчиков - хотя и не работает с Firefox 4.

Редактировать: Но есть дополнение "Auto Reload" , которое делает именно то,нам нужно: вы указываете одну или несколько папок (или файлов), и Firefox обновляется всякий раз, когда изменяется один из файлов внутри.

Редактировать (2013): PHPStorm имеет функцию автоматического обновления для Google-Chrome.Это потрясающе: вы видите веб-страницу chnge при вводе (!) В IDE.У них есть бесплатная версия сообщества для разработчиков программного обеспечения OpenSource.

2 голосов
/ 26 августа 2014

В Windows: просто нажмите Alt + F5 и сделайте это. Это решение работает одновременно с несколькими браузерами и, возможно, с любым редактором / IDE. Было протестировано с (jEdit, Eclipse, Notepad ++)

Для этого установите AutoHotKey и запустите приведенный ниже скрипт (скопируйте в текстовый файл и измените расширение на .ahk). Здесь есть портативная версия . Протестировано с версией AutoHotKey 1.0.48.05

Это решение довольно гибкое, так как вы можете изменять ключи, редакторы, браузеры и все остальное. Он предварительно настроен для браузеров Firefox и IE и jEdit, редакторов Eclipse, но вы можете легко настроить этот список.

varTextEditor и varBrowsers были обнаружены с помощью утилиты "WindowSpy", которая входит в комплект AutoHotKey.

;###############################################################################
; Save all unsaved documents, refresh all opened browsers and return to text editor
;###############################################################################
!F5::
    ;Configuration vars. Edit here the settings of this script
    ;               jEdit       Eclipse
    varTextEditor = SunAwtFrame,SWT_Window0
    ;varBrowsers = MozillaUIWindowClass,MozillaWindowClass,Chrome_WidgetWin_0,IEFrame,OpWindow,{1C03B488-D53B-4a81-97F8-754559640193}
    ;             Firefox3             Firefox4            Chrome             IEca    Opera    Safari
    varBrowsers = MozillaWindowClass,IEFrame
    ;End of configuration vars.

    WinGetClass, thisWindowClass, A ;Get the active window class

    if (InStr(varTextEditor, thisWindowClass, true, 1) > 0) { ;true = case sensitive
        varTextEditorClass = ahk_class %thisWindowClass%
        if (thisWindowClass = "SunAwtFrame") {
            OutputDebug, ...Saving everything
            ; SetKeyDelay, 100, 100, Play
            Send ^+s  ;Ctrl + Shift + S = Save all
        } else if (thisWindowClass = "SWT_Window0") {
            SendPlay ^s ;Ctrl + S = Save
        }
        Sleep, 500 ;Give some time to the data be recorded on hard disk
    } else {
        MsgBox, 0, Ops!, You must be in on these text editors: (%varTextEditor%) to get this script running, 5
        return
    }

    ;Refresh all opened (and maximized) browsers
    Loop, parse, varBrowsers, `,
    {
        varClasseBrowser = ahk_class %A_LoopField%
        if WinExist(varClasseBrowser) {
            WinGet, winState, MinMax, %varClasseBrowser% ;get window state. -1 = minimized
            if (winState != -1) {
                WinActivate, %varClasseBrowser%
                OutputDebug, ...Refresh browser %A_LoopField%
                Send, {F5}
            }
        }
    }
    ;Return to text editor
    WinActivate, %varTextEditorClass%
return

2 голосов
/ 26 марта 2013

Решение VBScript не работает с браузером Google Chrome в Windows 7. Ниже приведено решение, которое прекрасно работает с любым браузером (просто измените строку ititle) и Eclipse IDE с помощью небольшой утилиты от NirSoft (http://www.nirsoft.net/).

  • Загрузите NirCmd и извлеките файл nircmd.exe куда-нибудь в свой проект (его ПОЦЕЛУЙ таким образом).
  • Создайте следующееnircmd-chrome-focus + f5.bat 'командный файл где-то в вашем проекте:
    ECHO Off
    REM This little batch files calls the awesome nircmd utility to focus Chrome window send an F5 and swtich
    REM back to Eclipse. This is no longer possible with VBScript in WIN7 as Chrome can only be focused but won't 
    REM accept key sends unless a click is made. Seriously donate to the NirSoft for making this tool. 
    
    %~dp0nircmd.exe win activate ititle "- Google Chrome"
    %~dp0nircmd.exe win max ititle "- Google Chrome"
    %~dp0nircmd.exe sendkey f5 press
    %~dp0nircmd.exe win activate ititle "- Eclipse"
    %~dp0nircmd.exe win max ititle "- Eclipse" 
    
    
  • Добавьте пакетный файл в качестве компоновщика проекта «Проект> Свойства> Конструктор> Новый» и убедитесь, что «Проект> Автоматическая сборка» и «Параметры сборки»> «Во время автоматической сборки» выбраны.Смотрите ниже скриншот для идеи.

    image
...