ffi)
или Chrome. Нет, просмотрев исходник, он уже
не увидит нашей статьи, но вот сохранить стра-
ницу он
сможет и
там
каким-то
непонятным
еще
для меня образом окажется наша статья, которую
мы так стремимся защитить от копирования.
Метод 5* Фрейм в роли сейфа
В
отчаянных
поисках
тихой
гавани,
в
которой
могла бы спокойно отсидеться наша статья,
не боясь быть скопированной
или сохраненной,
я
вдруг вспомнил о iframe. Тогда код все той же ячей-
ки нашей таблицы немного изменим:
<td width=”200”>
ciframe src=”text.htm” name=”my_frame”
id=”my_frame”x /ifra m e >
</td>
Составим код страницы text.htm:
<html><head><script>
function SetMyText (s) {
var d = document.getElementByld (‘m ytext’);
d.innerHTML = s;
}
< /script x /h e a d >
<body onselectstart=”return false” onmouse-
down=”return false” oncontextmenu=”return false”>
<div id="my_text”>&nbsp;</div>
</body></html>
И в соответствии с этим перепишем код функции
LoadContentComplete
основной веб-страницы:
function LoadContentComplete (с) {
if (с != null)
if (c.length>0) {
src_text = c;
window.frames
[‘m yfram e’].
SetMyText (c);
}
}
К огда
и з
И нт ернет а
м ож но
будет
скачат ь
конф ет ы ,
п и во
и
т ё-
ток,
вот т огда и п ого-
ворим о б инт ернет -за-
висимост и. А пока эт о
т олько чуш ь и миф !
В итоге получим абсолютно защищенную статью,
если
ее
будут
просматривать
в
браузерах
IE,
Chrome и Opera, но, увы-увы-увы, неподдающимся
остался FireFox.
Причиной тому является совершенно иная логика
поведения
этих
браузеров.
Когда
пользователь
уводит курсор мыши за пределы области, заданной
в функции BodyOut, скрипт честно отрабатывает и
скрывает статью.
Но при выборе пункта меню
Сохранить ка к
или
нажатии комбинации клавиш СМ +Б появляется ди-
алоговое окно,
которое может расположиться как
раз над этой заданной областью и скрипт все еще
будет получать эти координаты курсора и восста-
новит текст статьи.
В итоге пользователь сохраняет статью успешно
и смеется над нами. Тут решением может быть рас-
положение области просмотра статьи подальше от
левого края окна браузера.
Тогда пользователь сможет сохранить статью
в
браузерах FireFox и
Chrome только в том случае,
если
случайным
образом
перетащит
диалоговое
окно сохранения как раз поверх области просмотра
статьи и в таком положении диалогового окна со-
хранит страницу.
Или
же
если
попадется
любопытный
пользова-
тель, да еще и знающий язык Javascript, сохранит
страницу без статьи, проанализирует код скрипта и
попытается проделать простую манипуляцию с ди-
алоговым окном сохранения страницы еще раз.
Метод 6« Последняя надежда
«
И
так, фрейм нам ничем не помог. Моя попыт-
ка динамически создавать тег для статьи че-
рез команды
createElement
и
appendChild
тоже
защиты не прибавила. Остается еще раз перепи-
сать наш код, выбросив все ненужное.
Динамическая загрузка статей понадобится, по-
этому
подключение
модуля
request.js
оставляем.
Выбрасываем
функции
BodyEnter,
BodyOut
-
их
заменит работающая четче многофункциональная
переработанная
MyMouseMove
и дополнительная
к ней функция
getBounds.
function getBounds (obj) {
var left = obj.offsetLeft;
var top = obj.offsetTop;
for (var parent = obj.offsetParent; parent; parent =
parent.offsetParent) {
left += parent.offsetLeft;
top += parent.offsetTop;
}
return {left: left, top: top, width: obj.offsetWidth,
height: obj.offsetHeight};
}
function MyMouseMove (x, y) {
mx = x; my = y;
var d = document.getElementByld (‘my text’);
var bounds = getBounds (d);
if ((my>bounds.top) &&
(myCbounds.top+bounds.height) &&
(mx>bounds.left) &&
(mxCbounds.left+bounds.width)) {
if (src_text!=””) SetMyText (src_text);
} eise SetMyText (“&nbsp;”);
}
Создаем функцию
SetMyText:
function SetMyText (s) {
var d = document.getElementByld (‘m yjext’);
d.innerHTML = s;
}
упрощаем
LoadContentComplete:
предыдущая страница 39 Компьютер 2012 00 читать онлайн следующая страница 41 Компьютер 2012 00 читать онлайн Домой Выключить/включить текст