![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Helene |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 1.2.2006 Где: Киев Репутация: нет Всего: нет |
Нужно, чтобы работала такая схема - нажимаем кнопочку, выполняем определенный шелловый скрипт.
Каким образом возможно с помощью JavaScript это осуществить? |
|||
|
||||
| Greendrake |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 364 Регистрация: 14.7.2005 Репутация: нет Всего: 6 |
Нужно уточнить - где (на какой машине) по замыслу должна находиться кнопочка, и где шелловый скрипт?
Если кнопочка на клиенте, а скрипт на сервере, то что, JavaScript используется в качестве серверного языка (JSP) что ли?? |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Helene, Если хотим интерактивный шелл в браузере, то пишем простейший терминал пользуя XMLHttpRequest, который просто будет отсылать введёный текст на сервер и выводить полученный текст юзеру. От силы 30 строк, смотри примеры по форуму.
На сервере, к примеру PHP, получает текст в $com_str, вызывает system($com_str); Таким образом строим самую настоящую дыру, по которой любой может работать с шеллом. Благо сервер обычно в nobody работает, так что многое попротить не удасться, но удасться посмотреть пароли из конфигов и БД На встречу: зачем это понадобилось и чем ssh не устраивает? Также согласнован ли такой финт ушами с твоим хостером, не думаю что парни будут в восторге. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Helene |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 1.2.2006 Где: Киев Репутация: нет Всего: нет |
не смешно а вообще, идея проста. нужно расширение, которое заставляет FireFox без лишних вопросов открывать файлы .mp3 указанной пользователем программой, т.е. по сути нам нужно в определенный момент выполнить команду на уровне "mplayer 123.mp3" |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Угу, и реализация тоже в пару строк, просто не встречал я ещё людей готовых так просто отдать шелл всему и-нету Если никаких параметров не передаём (например имя файла), то лучше определить множество всех доступных комманд на сервере и вызывать их по ID. Также хорошо бы пароль спросить, да с sha1 хешем на сервере сравнить, хоть какая-то защита. Что бы не было не поняток: из браузера ничего нельзя сделать на сервере, это логично. Можно на сервере запустить софт (скрипты), что будут "слушать" твои команды, передаваемые как угодно. Так, на всякий случай пояснил... Админам хотим сюрприз устроить с музыкой? -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Helene |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 1.2.2006 Где: Киев Репутация: нет Всего: нет |
а зачем отдавать шелл всему инету??
судя по твоим словам, ты думаешь, что скриптик должен выполняться где-то далеко у хостера или еще у кого-то там. на самом деле, музыка должна играть у клиента |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Ой, тогда меня далеко унесло от задачи...
WSH естественно под бздёй нет, остаёться браузер. Ну если только JS shell не стоит, но это вещь редкая. Из под браузера под мозиллой пользуем XPCOM, что бы играть музыку (xulplanet.com, но плохо задокументировано...). Запустить что то из шелла, такого не встечал... Или не для браузера совсем плагин? Растолкуй внятно задачу, что есть, где работаеми т.д. А то насоветуем тут снова -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Helene |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 1.2.2006 Где: Киев Репутация: нет Всего: нет |
ну что ж, попробую все объяснить более подробно
нужно расширение для FireFox'a (оно же extension цель - открывать музыкальные файлики определенной программой. примерный алгоритм: 1. ловим событие onload 2. по нему ищем на страничке все элементы с tagName=='a' 3. подменяем им атрибут onclick на "чего_то_там(); return false;" 4. соответственно, по клику вызывается это чего_то_там(), которое и запускает наш файлик (имеется в виду, что в исполняющую программу передается url файла, а она сама его скачивает). при этом стандартное окошко загрузки FireFox не появляется (спасибо return'у). нужен совет по поводу реализации функции чего_то_там(). |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Да,
Helene, я догадывался, что будет всё так безобидно Нужно что-то типа тега < EMBED... > использовать. Как вызываются апплеты и флеш. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Helene, лучше без шелла и расширения, играть музыку браузером (надеемся что все плагины стоят...), bgsound/embed, в поиске. Похоже это будет слито на CD с музоном, где пользователь бродилкой сможет файлы просматривать? При чём тогда бздя, работать должно везде.
Играем в ИЕ: http://forum.vingrad.ru/index.php?showtopi...st&p=140726 Играем в мозилле: http://forum.vingrad.ru/index.php?showtopi...st&p=313707 Опера должна bgsound поддерживать, остальные скорее всего только через embed/object: обэцт: http://forum.vingrad.ru/index.php?showtopi...st&p=344719 embed в поиске, тег прост. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Helene |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 1.2.2006 Где: Киев Репутация: нет Всего: нет |
да нет же
ко мне знакомый пришел с простым желанием "хочу, чтобы у меня FireFox играл музыку именно так, а не иначе". вот мне и интересно, возможно ли это и как эту затею воплотить в жизнь, хотя к JavaScript я имею весьма условное отношение. |
|||
|
||||
| Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 1 Всего: 62 |
Вариант №1 (совсем не гибкий и не факт, что работает):
Этот попробует выполнить действие по-умолчанию для файла. Обычно это то, что по двойному клику в файловом менеджере происходит. Будет работать только в системах, которые поддерживают действие по умолчанию. Предполагаю, что это Вынь, Маки и ГНОМ/КДЕ. Так же путь к файлу должен быть в той же кодировке, что и на файловой системе. Ищем дальше... Добавлено @ 00:51 Вариант №2 (совсем непроверенный): Можешь еще посмотреть nsIMIMEInfo. У него есть метод launchWithFile, который позволяет запустить обработчик типа фала. Можно свой обработчик типа создать. Тип фала (mime-type) достается из nsIMIMEService посредством метода getTypeFromFile. Именно этим способом, например, пользуется менеджер закачек Лисы. Это когда лиса спрашивает что делать с фалом - сохранить или открыть с помощью какой-то проги. |
|||
|
||||
| Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 1 Всего: 62 |
Вариант №3 (я его таки нашел!):
Есть такой прикольный интерфейс - nsIProcess. Он именно для того и предназначен - для запускания процессов. Вот. Это сообщение отредактировал(а) Cheba - 25.2.2006, 01:24 |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
А для этих фич ещё нужно какое-то разрешение (сертификат/привилегии) или как?
Если да, то как их получить? |
|||
|
||||
| Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 1 Всего: 62 |
Songbird Добавлено @ 16:12 Ciber SLasH, если из расширения, то не нужно. Если из веба, то нужно подписать скрипты. Подробнее можно почитать на DevMo: Bypassing Security Restrictions and Signing Code. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |