Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа, рожает новый html файл, браузер переходит на него?
PS. предлагать пользователю установить апач не предлагать.
Хотя да, можно написать локальный HTTP сервер, но это уже не KISS и некросплатформенно. И неудобно для пользователя, может вызвать кучу проблем.
Правильно работающая программа — просто частный случай Undefined Behavior
Здравствуйте, Mamut, Вы писали:
_W>>Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа,
M>Какая такая внешняя программа?
Моя!
>Кто ее устанавливать будет?
Кто угодно — пользователь или инсталлер?
Можно и не уставливать.
Приложение — для windows (бинарник + index.html), для unix — (.cpp файл, +index.html) и может быть даже никаких сторонних либ. GUI via браузер пользователя.
>С браузером регистрировать?
В том то и дело, что мне почему-то везде советую регистрировать протокол winnie://. либо писать свой http сервер.
Правильно работающая программа — просто частный случай Undefined Behavior
_W>>>Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа,
M>>Какая такая внешняя программа? _W>Моя!
>>Кто ее устанавливать будет?
_W>Кто угодно — пользователь или инсталлер?
_W>Можно и не уставливать. _W>Приложение — для windows (бинарник + index.html), для unix — (.cpp файл, +index.html) и может быть даже никаких сторонних либ. GUI via браузер пользователя.
>>С браузером регистрировать? _W>В том то и дело, что мне почему-то везде советую регистрировать протокол winnie://. либо писать свой http сервер.
Правильно советуют Потому что:
Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа, рожает новый html файл, браузер переходит на него?
Делается только путем регистрации своего протокола с ИЕ (как это делается с ФФ и Оперой — не знаю) или написанием своего плагина.
Здравствуйте, _Winnie, Вы писали:
_W>PS. предлагать пользователю установить апач не предлагать. _W>Хотя да, можно написать локальный HTTP сервер, но это уже не KISS и некросплатформенно. И неудобно для пользователя, может вызвать кучу проблем.
Интересно! Запустить стороннюю программу (фактически, CGI) напрямую — это кроссплатформенно, а HTTP-сервер — уже нет.
Как раз свой сервер — это более переносимое решение, потому что
* не привязывается к браузеру
* не является дырой в безопасности (а то нашлись бы такие умники — давать ссылки на format c: /y)
Существуют готовые локальные серверы — в том числе не требующие инсталляции. Запускается такая приблуда из autorun.inf и можешь смотреть содержимое сидюка в динамике
А дальше — подцепляешь свою программу как CGI и будет тебе щасте.
Конкретный вопрос. Как заставить FireFox когда открываю файл локально предложить его "скачать/открыть"? Он почему-то сразу его открывает как текстовый :/
А мне надо его "запустить", нажав галочку "не спрашивать больше для этого расширения".
PS. Сунул внутри него бинарник(название не менял). Стал предлагать сохранить. FireFox что, парсит файл перед сохранением что бы отличать их друг от друга? :/
Однако, почему-то галочка "больше не спрашивать про это расширение" не активна. Почему?
Правильно работающая программа — просто частный случай Undefined Behavior
Здравствуйте, _Winnie, Вы писали:
_W>Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа, рожает новый html файл, браузер переходит на него?
_W>PS. предлагать пользователю установить апач не предлагать. _W>Хотя да, можно написать локальный HTTP сервер, но это уже не KISS и некросплатформенно. И неудобно для пользователя, может вызвать кучу проблем.
Здравствуйте, _Winnie, Вы писали: _W>Вы все нытики и ослики Иа-Иа >_<
Это ты нытик. Мы просто, в отличие от тебя, хорошо представляем себе, как работает связка браузер-протокол-сервер. _W>Конкретный вопрос. Как заставить FireFox когда открываю файл локально предложить его "скачать/открыть"? Он почему-то сразу его открывает как текстовый :/
Потому, что протокол обязан предоставить браузеру MIME-тип открываемого документа. В зависимости от этого типа происходят различные действия.
Протокол HTTP передает MIME в заголовках, протокол File — нет.
_W>PS. Сунул внутри него бинарник(название не менял). Стал предлагать сохранить. FireFox что, парсит файл перед сохранением что бы отличать их друг от друга? :/
Большинство браузеров научены горьким опытом не слишком доверять MIME-типу, отданному протоколом. Поэтому они учитывают также
а) расширение файла (точнее, расширение URL к этому файлу, независимо от протокола)
б) небольшую часть заголовка файла.
Именно благодаря этому браузер никогда не перепутает gif c jpeg, даже если переименовать файл.
_W>Однако, почему-то галочка "больше не спрашивать про это расширение" не активна. Почему?
Потому, что он определил тип не по расширению.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.