Javascript - wywoływanie zdarzeń systemowych


(Rosiak115) #1

Witam,

Chciałbym aby po kliknięciu w pewien link, uruchamiało mi odtwarzacz totem używając polecenia z basha "totem adresfilmu".

Nie mogę jednak znaleźć nic co by mnie mogło naprowadzić, a jako że sam js używam tylko kiedy trzeba, to postanowiłem że zapytam tutaj.

Domyślam się że w prosty sposób nie da się tego zrobić, ze względu na uprawnienia. Jednak może są jakieś "sztuczki", wiem że można napisać plugin do przeglądarki, ale wolałbym tego uniknąć. Może jakiś gotowy plugin do tego wyjątek etc. ?


(fedora24x) #2

Tworzysz skrypt w bashu, ma być to pentelka nieskończona, która co 10ms odczytuje z drugiego skryptu polecenie (np. totem …) Jęzeli jest(skrypt2.sh istnieje) to włacza ten skrypt a jeżeli nie(skrypt2.sh nie istnieje)to włacza sama siebie znów. A ty tylko tworzysz link co tworzy plik na serwerze w określonej lokalizacji :wink:

Trick ten jest rzadko spotykany.


(Rosiak115) #3

A nie da się zrobić, coś na wzrór np.

Adres w przeglądarce totem://adresfilm ?


(fedora24x) #4

Metoda 1: (funkcja w php)

system(“totem /home/user/video.flv”);

uruhamiasz taki skrypt jako root:

su

chmod +x skrypt.php

chmod 777 skrypt.php

./skrypt.php

Metoda 2:

przez 'funkcja()

//nie jestem pewny do met. 2


(kostek135) #5

@fedora24x

Pytanie jest o JS. Wszystkie twoje odpowiedzi są bezsensowne.

@OP

Generalnie się nie da, bo byłby to poważny błąd bezpieczeństwa. Rozumiem, że nie chciałbyś chodzić po internecie, gdzie mógłbyś się natknąć na rm -rf? Microsoft opracował w każdym bądź razie taką technologię jak ActiveXObject (jednak nie znalazła ona szerszego uznania niż IE). Alternatywą są applety javowe. Pozwalają na więcej, jednocześnie pytając o zgodę (tak jak ActiveXObject. Jest tylko jeden problem, oba rozwiązania zawierają mnóstwo luk. Tego nie da się zrobić dobrze i bezpiecznie. W momencie oddania sterowania skryptowi zewnętrznemu sami prosimy się o kłopoty.

Tu masz przykład: http://stackoverflow.com/questions/2800 … -hyperlink


(Razi) #6

@ kostek135: nie jest bez sensu, bo jako że w JS się nie da, podaje alternatywne najprostsze rozwiązanie, czyli serwer↔klient, gdzie klient klika, a serwer uruchamia. JS może wydać komendę, którą wykona serwer, a to że serwer i klient to ta sama maszyna niczego nie zmienia.

A ActiveX jest (było) jeszcze bardziej dziurawe niż aplety Javy, a w tym przypadku te „dziury” raczej w niczym by nie przeszkadzały - sam przecież sobie robi aplet, niebezpieczne jest gdy wchodzisz na czyjś aplet. Równie niebezpieczne jak aplety jest każda aplikacja jaką pobierasz i uruchamiasz, więc nie bardzo rozumiem o co cały ten szum i całe hejcenie całej Javy z tego powodu. Jedyna różnica to to, że aplety same na stronach startują (w starszych wersjach przeglądarek, bo obecnie trzeba samemu kliknąć). No i oczywiście ktoś je tam musi zamieścić, sam się przecież niebezpieczny aplet nie zamieści na stronie.

Osobiście uważam że JS to głupie rozwiązanie, jeśli to ma stać na jednej maszynie. jeśli zdalnie - to tylko metoda sterowania.


(fedora24x) #7

Moje posty nie są bez sesnsu, są odpowiedzią na powyższe pytanie. Jeżeli w js się nieda, to z pomocą nadchodzi php :wink:


(Rosiak115) #8

Rozumiem. Po prostu napisałem iple dla linuksa. Jako że nie chciało mi się bawić w gui, to zrobiłem to wszystko jako stronę, uruchamianą jedynie jako gui do programu.


(Drobok) #9

W czym piszesz ? Możesz podmienić link już z poziomu programu :))


(Rosiak115) #10

W Pythonie.


(fedora24x) #11

Jeżli w pythonie to poco ci javascpript.


(Rosiak115) #12

JS wykonuje się po stronie przeglądarki, Python nie.