Gdy zmienisz youtube na nowszy motyw Cosmic Panda ->
, pojawia się po lewej stronie przycisk FeedBack. Jak się w niego kliknie, wyskakują narzędzia do zaznaczania na stronie elemetów. Następnie jak naciśniemy preview zostaje wysyłany screenshot strony do google. No i tutaj jest moje pytanie. Jakim cudem udało się im wykonać screenshot po stronie użykownika?
Pozdrawiam.
hmm, widziałem już coś takiego ale było w javie
po pierwsze za większość z pewnością jest odpowiedzialny ten skrypt:
http://feedback.googleusercontent.com/177/render_frame.js
co ciekawe jest w nim na przykład
JPEG encoder ported to JavaScript
i samo to już jest dla mnie mega :D
poza tym <canvas>
i przed chwilą w źródle widziałem flasha o nazwie typu "canvas.swf" rozciągniętego na cały ekran a teraz nie mogę się go dogrzebać :O
jak dojdziesz do działającej wersji lokalnej to daj znać ;)
Wchodzenie w źródło - to sobie zostawiłem w ostateczności, a to wszystko dlatego, że te cudo http://code.google.com/closure/ nie pozwala swobodnie czytać ;/ Jedyne co znalazłem w internecie to :
http://www.nihilogic.dk/labs/canvas2image/ - lecz na pewno to nie jest to, bo to parser jest, i na razie obsługuje 5 podstawowych znaczników. No jeszcze poczekam, a jak nie znajdę odpowiedzi będę musiał do źródła zajrzeć - ahh ta moja ciekawość.
wiesz, nie tylko Ciebie i mnie to zainteresowało
poczekaj z dwa dni a w Internecie znajdziesz tysiące pytań o to ;)
swoją drogą zawsze byłem przeciwny tak ekstremalnemu wykorzystaniu JS i teraz mam przykład umacniający mnie w tym bowiem... u mnie to nie działa :) Próbowałem zgłosić błąd przy pomocy tego bo tak się złożyło że akurat znalazłem jeden i się nie da - wyskakuje błąd akurat zaznaczając ten fragment
Co jak co ale narzędzie do zgłaszania błędów z pewnością nie powinno mieć błędów żeby to zgłaszanie było w ogóle możliwe ;)
Ja testowałem te narzędzie na Chrome - niestety, zamiast screenshota to mam białe zdjęcie. A to tylko dlatego, że jest bug w 12 . Taki sam jest efekt jak wklejasz wycinek z painta -> http://screener.tk/ (taka mała reklama mojego narzędzia ;] )
Natomiast na FF działa wyśmienicie...
A co do czekania... nie jest tak miło. Był już poruszany temat na stackoverflow
http://stackoverflow.com/questions/5621907/how-to-screenshot-website-in-javascript-client-side-how-google-dit-it-no-need
lecz żadnej konkretnej odpowiedzi nie był - jeden znów pisze że jest to po stronie serwera. Więc aby się upewnić zmieniłem kod html youtube na własny. No i zrobił się screenshot zmodyfikowanej strony - czyli definitywny fałsz.
http://bugmuncher.com/ <- podobny serwis.
Po analizie, wynika, iz to tak działa:
- Zaznaczasz na stronie fragment. Po naciśnieciu preview, wysyłasz do serwera źródło strony, następnie top, left zaznaczonego miejsca i wysokosc i szerokosc. Wysylasz tez swoją rozdzielczość
- maszyna symuluje twoją rozdzielkę, i wyświetla źródło wysłanej strony w przeglądarce
- maszyna wykonuje screena.
Reasumując - nie da się zrobić screenshota po stronie klienta.
bordeux napisał(a)
- maszyna symuluje twoją rozdzielkę, i wyświetla źródło wysłanej strony w przeglądarce
- maszyna wykonuje screena.
Reasumując - nie da się zrobić screenshota po stronie klienta.
bordeux napisał(a)
lecz żadnej konkretnej odpowiedzi nie był - jeden znów pisze że jest to po stronie serwera. Więc aby się upewnić zmieniłem kod html youtube na własny. No i zrobił się screenshot zmodyfikowanej strony - czyli definitywny fałsz.
no to jak w końcu?
I po co robiliby takie coś skoro to nie byłby screen od strony serwera to wystarczyłoby przesłać adres, współrzędne i wersję przeglądarki
sprawdź sam. Wstaw poprzez chrome dev tool lub firebug na stronę
bordeux napisał(a)
sprawdź sam. Wstaw poprzez chrome dev tool lub firebug na stronę
Mi w ogóle znika iframe jak próbuję zrobić tego screenshota, ale wierzę że tak jest
W każdym razie rozwiązanie wydaje mi się totalnie bez sensu... wychodzi nagle nowa wersja firefoksa w której wszystko się rozjeżdża - chcesz poinformować o tym google i co? Na screenshocie tego nie widać
Poza tym po co im przesyłać z powrotem kod źródłowy który dopiero co się od nich pobrało? :|
Reasumując - nie da się zrobić screenshota po stronie klienta.
Da się , ale za pomocą podpisanego apletu w javie
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.