115750
2.02.2016, 11:53:54
Chciałbym wstawić na swoją stronę www pewne fragmenty tekstu, które na stronie nie będą widoczne ale po zwykłym skopiowaniu i wklejeniu tekstu ze strony (np. na forum) staną się już widoczne. Tak zabezpieczenie przez prostym bezmyślnym kopiowaniem tekstu metodą kopiuj-wklej.
Obecnie to mam zrobione jako tekst o rozmiarze 1 i kolorze białym (tło). Czy można to zrobić jako lepiej, bardziej elegancko?
Pyton_000
2.02.2016, 12:23:43
115750
2.02.2016, 12:48:48
Ciekawe ale jak dla mnie trochę za bardzo rozbudowane. Myślę o czymś prostszym.
vokiel
2.02.2016, 12:59:33
Robiąc stronę WWW oddajesz użytkownikom jej treść, w żaden sposób go nie zabezpieczysz, jedynie możesz utrudnić kopiowanie.
Możesz np zrobić dwie warstwy jedna nad drugą. Na dolnej tekst, a na górnej przezroczysty tekst na przezroczystej warstwie o wybranej przez Ciebie tresci.
trueblue
2.02.2016, 13:15:53
Albo odwrotnie:
https://jsfiddle.net/z8tyLerm/1/Niemniej pamiętaj, że ten ukryty tekst będzie się indeksował w wyszukiwarkach.
Lepszym rozwiązaniem jest to co podał
Pyton_000 - kombinowanie ze zdarzenie onCopy.
115750
4.02.2016, 09:49:00
Ja nie chcę zabezpieczyć treści przed kopiowaniem, wręcz przeciwnie. Chcę tylko aby na skopiowanym i wklejonym tekście pojawiał się adres strony, skąd to zostało skopiowane.
Ponadto z racji, że mój tekst jest w tabeli, kiepsko wkleja się na fora. Chciałem więc oddzielić pola w tabeli dodatkowym znakiem, który na mojej stronie nie będzie widoczny.
Rozwiązanie podane przez trueblue podoba mi się - działa i proste.
freewalker
4.02.2016, 23:40:45
dodaj swój watermark w divie, span czy innym elemencie, którego szerokość i wysokość ustawisz na 0px i overflow na hidden. Przy kopiowaniu takiej treści zostanie również skopiowana zawartość takiego elementu (bez właściwości). Chyba najszybszy sposób. Musisz też pamiętać o ustawieniu wartości float, inaczej np. element blokowy div spowoduje przejście do następnej linijki tekstu, który znajduje się po nim.
115750
5.02.2016, 14:09:32
Zrobiłem to tak:
<span style="color: transparent; width: 0px; height: 0px; overflow: hidden; float: left;">ukryty tekst
</span>
Na stronie wygląda ok, nic się nie rozjechało. Niestety o ile kopiowanie i wklejanie w Firefoxie działa ok, to Chrome pomija ten ukryty tekst.
freewalker
5.02.2016, 19:40:26
color:transparent ? Wiem, że background-color może być transparent a nie czionka, ale w ogóle przy width:0px;height:0px;overflow:hidden nie mieszaj z kolorem, daj go nawet na red żeby był za****cie widoczny po skopiowaniu (jak skopiuje atrybuty formatowania)
To chyba nie kwestia chrome a tego gdzie wklejasz? A gdzie wklejasz?

może zachowuje formatowanie elementu? Na 100% będzie działało w notepadzie, który nie kopiuje atrybutów formatowania - zależy gdzie wklejasz, może daj przykład to znajdziemy metodę
115750
8.02.2016, 10:12:08
Wklejałem to do notatnika.
Zrobiłem to w końcu tak jak poniżej i chrome również zaczął to widzieć. Problem był w tym, że chrome pomija elementy, które mają rozmiar 0.
span.hidden-text {
color: transparent;
width: 1px;
height: 1px;
overflow: hidden;
float: right;
}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.