Так как я пользуюсь при создании сайта отладкой сразу в двух Операционных Системах, а до ноутбука с Windows приходиться еще и тянуться (это при наличае природной толики ленивости в организме) — захотелось придумать способ, самый простой, при котором я мог-бы открывать страницы в браузере ноутбука со своего компьютера под управлением ОС Xubuntu.
Самым удобным способом мне показалось открытие меню по горячей клавише, где я мог бы задать URL, который необходимо открыть на Windows. И именно такой идеей я и руководствовался, создавая свой «ленивый костыль». 🙂
Я написал HTML страницу, в которой используется Java Script для проверки методом GET, на предмет изменения данных в файле у себя на локальном сервере в Xubuntu. И если данные в файле изменились с предыдущей проверки — в iframe на этой странице загружается URL, указанный в данном файле. Это часть, которая будет выполняться в OS Windows в браузере.
Для указания необходимого URL адреса я решил написать простую утилиту на FreePascal, которая брала бы данные из формы ввода и записывала их (стирая предыдущие данные) в файл, к которому, собственно, и обращается написанный ранее Java Script. И запуск этой утилиты я повесил на нажатие «горячей клавиши».
Этим я добился необходимого мне результата и моя лень, восторжествовавшая от осознания того, что более нет нужды тянуться каждый раз к ноутбуку, чтобы открыть на нем определенную страничку, сказала мне огромное спасибо.
Html страница:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>UPDATE SYNC </title> <style type="text/css"> iframe.frame { width:100%; height:600px; } </style> <!-- Подключим jquery --> <script type="text/javascript" src="./jquery.js"></script> <script type="text/javascript"> <!-- Создадим GET запрос --> function upd() { $.get("./update", { }, onupd ); } <!-- Напишем ф-цию обработки запроса --> function onupd(data){ var eurl = document.getElementById('frame').src.trim(); if(eurl.slice(-1) == '/') { eurl = document.getElementById('frame').src.slice(0, -1); } if(data.trim() != eurl) { document.getElementById('frame').src = data.trim(); } } <!-- Здесь используется таймер, по которому происходит запрос к файлу - 1000=1 секунда --> function start(){ idIntrv = setInterval('upd()', 6000);} function stop(){ clearInterval(idIntrv);} </script> </head> <body> <iframe id="frame" src="http://192.168.0.31/now/" name="preview-frame" frameborder="0" noresize="noresize" class="frame"></iframe> <a href="javascript:start();">Следить</a> <br /> <a href="javascript:stop();">Остановить слежку</a> </body> </html>
Код во FreePascal еще проще (привожу обработчик нажатия на кнопку):
var Form1: TForm1; upFile : text; procedure TForm1.Button1Click(Sender: TObject); begin system.assign (upFile, './update'); //Укажем файл rewrite (upFile); //Откроем его для перезаписи writeln (upFile, Form1.Edit1.text); //Запишем значение, указанное в поле ввода (его нужно создать) system.close (upFile); //Закрываем файл end;
Скачать архив со всем готовым:
https://maddot.ru/share/files/1403687202_upd.zip ~4 MB
В составе:
jquery.js
index.html
update — файл, который перезаписывает утилита на FPC, ему нужны права на чтение и записьэ
updater — сама утилита
У меня все это лежит на локальном сервере в каталоге /upd.