Perfection or Vanity

Project: Terminated

Blog nie jest już dalej prowadzony ani aktualizowany. Mimo tego, wpisy i komentarze są dalej dostępne. Możesz przeczytać pożegnalny wpis albo przejść do archiwum.

Zmierzyłem się kiedyś z obrazkiem, któremu chciałem wyłączyć możliwość łatwego, prawoklikowego zapisu. O ile wtedy wyczyniałem cyrki z linkami, tak teraz mam przyjemność Wam przedstawić wersję elegancką - nie dość że zlikwidujemy pozycję w menu pozwalającą zapisać plik to jeszcze dodamy transparentny znak wodny. Do dzieła. :-)

Na początku jak zwykle trzeba napisać kawałek HTML-a. Wybrałem listę definicji - jako definicję mamy obrazek, opisem jest link - wspomniany znak wodny.

  1. <dl class="img">
  2. <dt><img src="soo-gothic.jpg" height="119" alt="My Picture" /></dt>
  3. <dd><a href="">Copyright &copy; Riddle</a></dd>
  4. </dl>

Obrazek ma ustawioną wysokość w HTML - dowiedz się dlaczego. Po prostym ostylowaiu kolorami otrzymujemy taki oto wynik.

Teraz chcę przesunąć element <dd/> nad obrazek w elemencie <dt/>. Korzystam z pozycjonowania relatywnego:

  1. dl.img {
  2. position: relative;
  3. }
  4. dl.img dd {
  5. position: absolute;
  6. top: 0;
  7. left: 0;
  8. }

Tekst ładnie przesuwa się na górę, nad obrazek.

Następnie, czego można było się domyślić, rozciągnąłem <dd/> na całą szerokość i wysokość. W ten sposób przykryłem obrazek nowym elementem - każdy klik prawym przyciskiem będzie się odbywał na <dd/> a nie <img/> - a w menu nie pojawi się żadna opcja dotycząca grafiki.

  1. dl.img dd {
  2. ...
  3. width: 100%;
  4. height: 100%;
  5. }

I byłoby tak w istocie, gdyby nie kaprysy przeglądarek. Zajmijmy się najpierw Internet Explorerem 6. Nie czuje się on zobligowany do rozciągnięcia <dd/> na 100% wysokości, trzeba go więc zmusić. Po raz kolejny skorzystałem z dobrodziejstw expressions.

W komentarzu warunkowym dla IE6 (<!--[if lte IE 6]><![endif]-->):

  1. dl.img dd {
  2. height: expression(this.parentNode.offsetHeight - 6);
  3. }

Co tu się wydarzyło? Odwołałem się do elementu <dd/> przez this. Następnie wybrałem jego rodzica - <dl.img/> - przez parentNode. Wreszcie pobrałem wysokość zrenderowanego elementu za pomocą offsetHeight. Jako, że zależy mi na 100% eleganckim rozwiązaniu, odjąłem od wartości 6 pikseli, przypadających na podwójne obramowanie <dt/> (border: 3px double…). W ten sposób do height <dd/> przyporządkowałem wysokość zawartości elementu <dl/>.

Czy działa? Niewątpliwie rozciągnąłem i przykryłem cały obrazek elementem <dd/>, ale nadal w IE6 pod prawym przyciskiem myszki mamy możliwość zapisu obrazka. W Operze 9 jest tak samo, zdaje się że kopiuje zachowanie Explorera. Rozwiązanie tego problemu wydaje się bardzo trudne, ale takie nie jest - jeśli ma się informacje z dobrej ręki. ;)

Explorer posiada pewien bug, który objawia się skracaniem pola aktywnego elementu poza tekstem. Najbardziej uciążliwy jest w niektórych odmianach menu rollover. Nie chcę oczywiście powiedzieć, że Opera powiela błędne zachowanie - po prostu wydaje się tutaj nie respektować całkowitego przykrywania elementu (a raczej jego konsekwencji). Do czego zmierzam. Wystarczy przypomnieć tym przeglądarkom o obszarze jaki ten element zajmuje - i problem znika.

Uczynić to można aplikując elementowi tło. Kolor u nas odpada - musimy widzieć obrazek. Transparent nie działa (wszakże to domyślne ustawienie). Działa za to obrazek tła. Co więcej - żeby nie wracać do epoki przezroczystych GIF-ów wystarczy podać dowolny ciąg tekstowy jako URL:

  1. dl.img dd {
  2. ...
  3. background: url("opera&ie.hack");
  4. }

Proszę pamiętać, że nie wydzielałem tej linijki do stylów dla IE z powodu Opery. Jednak ten kod się spokojnie waliduje, więc bez obaw. Mankamentem tego rozwiązania jest denerwowanie ludzi próbą wyświetlenia pliku opera&ie.hack. Można więc zrobić ten przezroczysty GIF, dla świętego spokoju - jak wolisz.

Doszliśmy więc do efektu, który obiecywałem - obrazka nie da się zapisać w standardowy sposób. Oczywiście przypomnę, co już pisałem wtedy - sprytny i tak znajdzie wyjście (dużo mądrości plemiennych w komentarzach poprzedniego wpisu). Jednak zwykły kradziej-zółtodziób sobie nie poradzi. A Prt Scr odpadnie ze względu na kolejny krok ulepszania mojej metody.

Teraz pozostaje zrobić znak wodny. Poszedłem na żywioł i zrobiłem przezroczysty plik PNG z kanałem Alpha - będziemy walczyć, aby IE to pokazał - bo umie, tylko się wstydzi. ;)

Na początku zmieniamy link w element blokowy, nadajemy mu wymiary i przycinamy wystający tekst. Standard.

  1. dl.img a {
  2. display: block;
  3. height: 25px;
  4. width: 25px;
  5. overflow: hidden;
  6. }

Następnie pozycjonujemy go relatywnie do kontenera dt.img z prawej i na dole.

  1. dl.img a {
  2. ...
  3. position: absolute;
  4. right: 0;
  5. bottom: 0;
  6. }

Wreszie korzystamy z najpopularniejszej metody zamiany tekstu na obrazek i odsuwamy literki w lewo oraz ustawiamy tło ze znakiem wodnym.

  1. dl.img a {
  2. ...
  3. text-indent: -1000px;
  4. background: url(wmark.png);
  5. }

Otrzymujemy pożądany efekt, ale nie na IE. Tam należy skorzystać z filtra MS, włączającego obsługę kanału Alpha. Aby użyć filtru element musiałby mieć layout (hasLayout), ale tak się składa, że już go nadałem poprzez ustawienie wymiarów.

Najpierw należy wyłączyć tło - filtr tak naprawdę dodaje zwykły obrazek za tekstem, a nie zmienia zachowanie poprzedniego obrazka tła. Następnie wpisujemy magiczne znaczki w CSS dla IE6:

  1. dl.img a {
  2. background: none;
  3. filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="wmark.png", sizingMethod="crop");
  4. cursor: hand;
  5. }

W parametrze src podałem ten sam obrazek użyty wcześniej w tle. SizingMethod ustawione na crop powoduje ucięcie wystających części obrazka - u nas i tak nic nie wystaje. Wreszcie naprawiłem błąd z kursorem nad tym linkiem - nie wyświetlała się łapka. Działa.

Także całe trio - Firefox, Opera i Misio zostało obsłużone. Explorer 7 poradził sobie równie dobrze jak Opera - najlepiej zrobił to Firefox.

Przygotowałem też małą galeryjkę umożliwiającą sprawdzenie mojego kodu i przetestowanie przezroczystości (czy aby nie oszukiwałem). Zmieniarka jest w JavaScript, ale udostępniłem fallback do zwykłych stron HTML - i na marginesie - tak powinno się to właśnie robić. :)


Update: znalazłem rozwiązanie na ten plik opera&ie.hack. Jeśli nie zdecydujesz się umieszczać znaku wodnego, to po prostu ustaw czarne tło background: #000 i ustaw opacity: 0 - efekt będzie doskonały! IE też może uzyskać przezroczystość (filtry), więc wszystko zadziała wszędzie.

Informacje i hiperłącza

Blog o projektowaniu zgodnych ze standardami stron internetowych.

Praktyczne przykłady, sztuczki CSS, sposoby obchodzenia błędów przeglądarek, lekki i nieinwazyjny JavaScript, użyteczny design, dostępność i skrypty użytkownika.

RSS

Informacje o wpisie

Napisał riddle 11 lipca 2006 o 03:40

Kategorie: CSS, Internet Explorer, Webdesign na luzie

Dodaj do:

Wpisy archiwalne

Archiwum miesięczne

Dzięki!

Dodaj bloga do Technorati Favorites Dodaj bloga do Del.icio.us Blog należy do sieci 10przykazań.com

  1. W mojej opinii - sztuka dla sztuki. Oczywiście - zablokujesz prawoklik, co będzie utrudnieniem dla jakiejś połowy haksiorów, ale, posiadając odpowiednie narzędzia, można jednym kliknięciem/komendą ściągnąć całą stronę z obrazkami.

    Trochę zbyt wiele kodu, jak na takie zabezpieczenie.

    Znak wodny? Czemu nie...

  2. Metoda tak samo na około, jak wstawianie obrazka przez JS i ukrywanie go przy :hover, gdzieś taki kwiatek widziałem.

    A co do celu -- to trochę jak wieszanie obrazu nad stołem kuchennym, zasłanianie go specjalną szybą pancerną, a następnie pokrywanie warstwą polaryzacyjnego laminatu.

    Jak ktoś będzie chciał, to sobie zrobi Plik / Zapisz stronę jako... i tyle z zabezpieczeń. Od ochrony plików w sieci są licencje.

  3. Mimo wszystko bardzo fajna opcja. Zwłaszcza 'Znak Wodny', który IMO ma dużo zastosowań ;)..

    A co do tego, że każdy może sobie i tak taką grafike zassać. Napewno blokuje to wszystkie (wiadomojakie) nastolatki itp, a osoby, które wiedzą jak taki obrazek pozyskać są już w większości takie, że nie podpiszą się pod cudzym dziełem. Zakręciłem..

  4. Ciekawy artykuł. Po jego przeczytaniu wpadłem na ciekawy pomysł. Wymaga on ingerencji w obrazki ale na pewno uprzykrzy życie złodziejom. A gdyby tak obrazek podzielić na zasadzie przeplotu. Następnie jedną z części dać na tło a drugą wrzucić do <img/>. Dla choleryków którzy za wszelką cenę chcą chronić swoje fotki może to jest jakieś rozwiązanie. Wadą jest to że tyczy się tylko przezroczystych png/gif.

  5. a może wstawić go za pomocą osobnego JS, w którym będzie kod base64?? gdzieś to widziałem w innym zastosowaniu

  6. Hmm
    Przy odrobinie wiedzy lub użyciu Google można to obejść w kilka sekund. Choćby wklejając takie coś w pasku przeglądarki:

    javascript:linki='';for(i=0; i<document.all.tags('IMG').length; i++){im=document.all.tags('IMG').item(i);linki+='<img src='+im.src+'>'+'<br>'}w=window.open('about:blank','w','width=500,height=600,scrollbars=yes');w.document.write(linki);

    A co do samej idei... dla mnie to jakieś niesmaczne. Ograniczanie wyboru i możiwości gości na mojej stronie to zaprzeczenie całego Web2.0'wego, Creative-Commons'owego klimatu który ostatnio ogarnia sieć i który tak bardzo mi się podoba...

  7. Ani to zgodne ze standardami, ani nawet skuteczne user patrzy w kod i już ma obrazek... Co do przezroczystego png - ten trick nie działa na IE dla MacOS-ów, bo jak każdy widzi trzeba użyć do tego DirectX...

    A sam pomysł nieklikalnych / niezapisywalnych zdjęć przywodzi mi na myśl takie "poważne" serwisy typu fotka.pl więc samo w sobie jest to poronionym pomysłem.

  8. Yy… najprościej po prostu wyłączyć style w menu (można skrótem Shift+Ctrl+S w Fx) i potem zapisać obrazek.

  9. "Prt sc" odpadnie? Nie wiem, czy sam klawisz zadziała, bo pod Linuksem i tak mam nieaktywny, ale nie mam żadnego problemu, żeby pobrać zrzut ekranu np. przez Gimpa.

  10. Tekst fajny, ale wg mnie za dużo kombinowania - jeśli ktoś ma trochę oleju w głowie to i tak sobie poradzi.

    Mam za to problem na moim blogu (link w nagłówku komentarza) z obsługą alpha w png'ach przez IE. Próbowałem użyć kilku zgooglowanych sposobów, ale żaden nie działa jak powinien. Brakuje mi czasu, żeby grzebać w googlach dalej - może ktoś z Was ma w 100% skuteczny sposób?

  11. bigismall 11 11 lipca 2006, 09:50

    <dt /> jest rodzicem dla <dd /> ? chyba mały błąd się wkradł co ?

  12. Witia: Chodzi o to, że będzie widoczny znaczek „© by me” albo coś w tym stylu (znajdujący się nad oryginalnym, ale w osobnym pliku, więc nie ma problemu, żeby pobrać oryginalną grafikę bez tego znaczka ;-))

  13. mcv: to by trzeba zrobić po stronie serwera (np. z php gd) wyrenderować obrazek od razu ze znakiem wodnym, wtedy byłby na stałe bo takie zabawy w JS są bezsensowne...

  14. Nie ma co marudzić, że metoda jest do obejścia, ponieważ nie ma żadnej, która pozwoliłaby na całkowitą ochronę bez uciekania się do zmiany samego obrazka po stronie serwera (przez dodanie znaku wodnego), albo uciekania się do flasha i nakładania znaku wodnego w filmie.

    Powyższe rozwiązanie jest bardzo eleganckie, podoba mi się :) Mam tylko jedno pytanie, spostrzeżenie - odwołanie do nieistniejącego zasobu "opera&ie.hack" może powodować czasami problemy i wydłużenie ładowania (zwłaszcza IE lubi się przycinać). Lepiej skorzystać jednak z pliku .gif

    Aha, jeszcze jedno: "cursor:hand", czy "cursor:pointer" ?

  15. Rozwiązanie flashowe jeżeli na dobre chcemy obrazki zabezpieczyć jest chyba najlepsze. Chociaż to jest również całkiem niezłe ;)

    [michu]: „A co do samej idei... dla mnie to jakieś niesmaczne. Ograniczanie wyboru i możiwości gości na mojej stronie to zaprzeczenie całego Web2.0'wego, Creative-Commons'owego klimatu który ostatnio ogarnia sieć i który tak bardzo mi się podoba...”
    Są serwisy które potrzebują takich rozwiązań, np. te typu istockphoto.com, czy strony muzeów które nie życzą sobie rozpowszechniania (często komercyjnego) bez ich zgody zdjęć zbiorów.

    [Patrys]: „Od ochrony plików w sieci są licencje.”
    Zgadza się, ale taki w/w serwis nie będzie przeszukiwał non-stop sieci aby sprawdzić czy ktoś nie narusza ich licencji? To normalne że zamykasz dom/samochód wychodząc z niego, mimo że kradzieże są zakazane i karalne, prawda? Czytując forum fotograficzne można się załamać, kiedy pojawiają się informacje że dziennikarze nie znają prawa autorskiego...

  16. Michał Górny 16 11 lipca 2006, 10:48

    Ja kiedyś pisałem skrypt downloadu dla pewnego serwisu, który miał dodatkowo być zabezpieczony przed kradzieżą odnośników. Zastosowałem wtedy rozwiązanie takie, że zamiast odnośników były małe formularze z zestylizowanymi submitami.

    Ale i tak wydaje mi się, że takie coś to niepotrzebne robienie papki w kodzie i komplikowanie życia temu „dobremu” użytkownikowi.

  17. Poza faktem, że, jak już wiemy, słaba to ochrona, przeszkadza mi bardziej to, że użyłeś, Riddle, do ochrony obrazka listę definicji, co, jak sądzę (może zależy od kontekstu) raczej niewiele ma semantycznie wspólnego z obrazkami. A jeśli już tworzy się strony w xhtmlu z cssami to raczej główną ideą powinna być poprawna semantyka. Samo rozdzielenie warstwy prezentacyjnej od struktury nie wystarczy.

  18. Ja-Joanna: Jestem przyzwyczajony do używania listy definicji jeśli chodzi o obrazki z podpisem, a przyzwyczajenie to wynika ze sposobu pisania ston paru guru standardów sieciowych (Cederholm, Budd, inni).

    Bigismall: Racja, poprawię.

  19. poco dawac watermark na osobnym divie jak mozna po prostu naniesc go programem graficznym i nie babrac sobie kodu takimi "zabezpieczeniami".

    poza tym jak umieszczasz obrazek w necie to musisz miec swiadomosc ze ktos moze chciec go skopiowac jak sie to komus nie podoba to niech nie umieszcza obrazka w internecie.

    zlodzieja profesjonalisty Twoje zabezpieczenia rozbawią a userowi ktory chce wstwic sobie po prostu grafikę na tapetę albo uzyć jej jako elementu laurki urodzinowej dla mamy nie powinno sie tego utrudniac. poco?

    nie widze jakos praktycznego zastosowania Twojego pomyslu. ale oczywiscie zabawa kształci i można sie pobawić

  20. Proszę nie komentować wpisu, jeśli nie ma się nic do dodania. Wszystko czego się czepiacie napisałem w poście, podlinkowałem wypowiedzi wcześniej, etc. I tak, do jasnej anielki, zdaję sobie sprawę że to zabezpieczenie jest tylko połowiczne.

    Ale wiecie co? O to mi CHODZIŁO!

    Życzę miłego dnia.

    PS: Mam nadzieję, że choć kilka osób dowiedziało się czegoś nowego o zachowaniu IE bądź Opery i wyniosło pozytywne doświadczenia. Pozdrawiam.

  21. no wiec mowie: zabawa ksztalci

    pozdrawiam

  22. Btw… IE5/Mac ma obsługę kanału Alpha w PNG natywnie w odróżnieniu od swojego opóźnionego młodszego brata na Windows.

    losamorales: Wyobraź sobie, że to co zrobiłem też się może przydać … nie tylko jako zabawa. Irytują mnie już głosy, „po co napisałeś ten post”. EoOT.

  23. Riddle: o to ciekawe, bo grafik w firmie w której pracuję nonstop narzekał że mu się te png źle wyświetlają :) a to oszust jeden :)

  24. Kiepski grafik: http://www.libpng.org/pub/png/pngs-img-ie5mac.html

  25. Może nie taki kiepski, ale strasznie marudny i hmm anachroniczny :)

  26. W takich sprawach jak zabezpieczenia, nie powinno się oczekiwać od ludzi, przed którymi się chonisz, by zaktualizowali swoje oprogramowanie.
    Ale do sedna - w Operze 8.54 menu kontekstowe dla obrazka działa w najlepsze :)

  27. hmm a nie latwiej zrobic div z width height obrazka i zarzucic mu background-image z obrazkiem ?

  28. Damn u riddle!
    No więc podoba mi się sposób i w ogóle jest wypasiony, ale linki ze strony głównej joggera przekierowują w próżnię!

  29. gshegosh 29 11 lipca 2006, 15:24

    @elnino Ja używam: http://dean.edwards.name/IE7/

  30. gshegosh 30 11 lipca 2006, 15:31

    A tak BTW, właśnie zauważyłem, że przypadkiem też osiągnąłem efekt zablokowania zapisu obrazków (np. tutaj http://nowe.karko.net/miejsca/sniezka) - tylko że ja JavaScriptem "przesuwam" obrazek z img w tło, a w sam obrazek wczytuję ramkę. Przez tą manipulację nie da się prosto zapisać obrazka, a co gorsza - na wydruku też jest ramka zamiast zdjęcia. Ale już ja to poprawię ;)

    W każdym razie, riddle, nieco nietypowe zastosowanie list definicji ciekawe, a do wszystkich marudzących: czy robienie poziomych menu z ul/li też uważacie za niesemantyczne?

  31. Poziome menu jest nadal listą, więc jaki problem?

  32. gshegosh: Niestety IE7 nie pomaga - co ja robię źle?

  33. Printscreen anybody? :>

    PS: Rozwiązanie najbardziej upierdliwe: podzielić obrazek na części (extreme: 1x1px) i wygenerować tabelkę :> I niech sobie składają po ściągnięciu, jeśli wspomniany wcześniej printscreen nie wystarcza :P

  34. Tabelkę o komórkach 1×1px, ale osobno ustawiać tło dla każdej komórki ;-) Obrazek bez obrazka. Nie chcę wiedzieć, ile by to zajmowało…

  35. @Piotr Konieczny, mcv: Włączając się do tego offtopa, dodam z własnej strony, że jeszcze straszniejszym rozwiązaniem będzie przerobienie grafiki na ascii (oczywiście z użyciem kolorów). ;)

  36. Znak wodny bardzo efektywny. Co do blokowania zapisu: jak ktoś chce to zapisze ten obrazek i go użyje, niezgodnie z prawem, ale użyje.

    Riddle: Pamiętaj o &amp; w postach bo wywala błędy znów w tidy w Fx ;-).

  37. Riddle, po co napisałeś ten post? ;P

    A tak na poważnie: wydaje mi się, że przekombinowane z lekka. Owszem, może się okazać skuteczne przeciwko dzieciarni dziadującej na różnych stronach w poszukiwaniu grafik na swojego blogaska. I być może będzie bardziej skuteczne od zwykłego przykrycia obrazka przezroczystym gifem. Ja jednak pozostanę przy nanoszeniu znaku wodnego bezpośrednio w programie graficznym. Tym bardziej, że robię to automatem. No i potem nie muszę się męczyć w kodzie nad dodatkowym zabezpieczeniem. Ale co kto lubi.

    Pozostaje też kwestia semantyki, ale to jak widać też jest sprawa dyskusyjna - czy obrazek z podpisem to definicja? Tłumaczenie, że ładnie wygląda i daje się łatwo stylować do mnie nie trafia. Tabelki też były wygodne to tworzenia layoutu.

  38. Kiedyś pisałem aplikację dla niemieckiego klienta uczulonego na "pożyczanie" obrazków i rozwiązałem to przez cykliczne odpalanie crona i nanoszenie znaku wodnego dzięki PHP/GD na obrazki w danym katalogu.

  39. gshegosh 39 12 lipca 2006, 09:33

    elnino: IE7 pomaga, tylko on poprawia przezroczystość tylko PNGów, które w nazwie pliku mają - OIP - -trans (zajrzyj do doca albo źródła).

  40. gshegosh 40 12 lipca 2006, 09:36

    @olorin: A zdjęcie z podpisem nie jest definicją? Dla mnie definicja to coś w rodzaju "pojęcie - szerszy opis"; "obraz - szerszy opis obrazu" mi do tego pasuje.

  41. A czy mówię że nie jest? Jest definicją, to chyba najlepszy sposób powiązania obrazu z podpisem ;) Chociaż przyznam że nie wpadł bym na to ;)

  42. Nie podoba mi się hack – będą od niego puchły się logi apacza, a sama przechadzka do serwera po stronę 404 kosztuje połączenie i bajty idące w kanał.
    Mógłbyś dać temu jakiś bzdurny protokół, żeby nie latało z tym do serwera.

    A co do klikania na wylot przez elementy – nie przypominam sobie, żeby specyfikacja CSS czy DOM Events zabraniała takiego zachowania – nie na co narzekać.

    (tak na marginesie, nie możesz się mniej upierdliwie bronić przed spamem niż captchą? zbędnie wpisywaną po podglądzie?)

  43. Michał (ZSGifMan) 43 24 listopada 2006, 21:05

    Wywód robi wrażenie i w ogóle,ale czuję się jak na wykładzie html na uczelni :-)
    Te 150 linii kodu robi dokładnie to samo co ta jedna:
    function click() {if (event.button==2) {alert(‘Nie kradnij obrazka!!!’) }}document.onmousedown=click
    OPIS: prawy klawisz myszy jedyne co zrobi to wywoła komunikat o kradzieży albo o czym się tylko chce lub można to zapętlić i klikanie prawym przyciskiem będzie powodowało dokładnie NULL :-)
    Ale UWAGA!!! działanie funkcji zależne jest od przeglądarki: w IE i innych działa, ale np. FireFox 1.5 nic sobie z tego nie robi (i nasza praca idzie psu na budę).

    Pozdrawiam wszystkich.

  44. Na cóż takie zabiegi skoro wystarczy http://riddle.pl/-/xhtml/css-watermark/soo-gothic.jpg i juz mamy obrazek.

  45. Heh, nie czytałem całego artu, ale obrazek i tak idzie skopiować- wystarczy rzucić okiem na źródło. Prawda jest taka, że jak ktoś będzie chciał zapisać obrazek, to i tak to zrobi- nie ma bata na takich! :/ Aha- nie jestem jakimś expertem- po prostu myślę ;) heh. Pozdrawiam! Ps. strona już w ulubionych- ojjjj, będzie co czytać ;)

  46. Ja powiem inaczej mam znajomego co robi bardzo profesjonalne stronki, prócz tego co tu wszystko zostało wymienione nie znalazłem jeszcze żadnego obejścia na program Hatttrack – ściąga wszystko co popadnie a potem wyszukujesz co potrzeba , a jeszcze gorszą rzeczą to najpospolitszy printscreen – jak ktoś ma photoshopa to sobie powiększy obrazek i po sprawie – jakieś ciekawe pomoce macie na to ?

  47. Morrhus obejść się tego nie da (a może ja poprostu nie potrafię?) bo printscreen jest obsługiwany przez system nie przez przeglądarkę (tak samo jak np. Caps Lock)

  48. Triki dość fajne – jak ktoś się uprze to i tak je złamie, ale na lamerów dobry blok

  49. Ktoś nie ważne 49 24 stycznia 2008, 11:38

    Beznadzieja <blee>

  50. developer tbar>> css / disable s. / all s.
    disarmed :D pozdro

    ładowanie pracy jak bg z poziomu css linkowanym stylem to coś mocniejszego ale nic nie powali print screena :> no chyba tylko poważne znaki wodne lub podpis jako część całej pracy

  51. adblock -> Otwórz listę blokowalnych elementów -> znaleźć odpowiedni link -> prawy przycisk -> Kopiuj adres elementu -> wkleić w pasku adresu

Dodaj komentarz

Do formatowania komentarzy używaj Textile (HTML nie działa). Szczególnie jeśli wklejasz większe fragmenty kodu. W razie niepewności użyj podglądu komentarza.

Wypowiedzi obraźliwe, infantylne oraz nie na temat będą moderowane – pisząc postaraj się zwiększyć wartość dyskusji.

Komentarze nie służą do wysyłania wiadomości albo informowania o błędach, itd. Chcesz coś mi napisać – skontaktuj się.