Эй, ребята! Добро пожаловать в мое обычное место. Я буду здесь в первую неделю каждого месяца, чтобы ответить на ваши вопросы. Так что пишите мне на [email protected] !
Защити то, что твое
Эй, док! Я работаю на сайте фотографии, и я включил в него много своих снимков. Как я могу запретить пользователям брать эти фотографии со своих страниц? — Филипп
Филипп, это, наверное, один из вопросов, которые мне чаще всего задают. Авторы считают, что, поскольку они создали свои картины, они должны иметь возможность защищать других от их защиты, и это справедливо. Хотел бы я сказать вам, что был надежный способ защитить ваши изображения. Вот некоторые из нормальных предложений и их преимуществ и подводных камней:
Скрипт без щелчка правой кнопкой мыши: этот небольшой кусочек JavaScript представит небольшое предупреждение, в котором говорится что-то вроде «Эй, не кради!» когда пользователи используют правую кнопку мыши, что является довольно стандартным способом сохранения отдельных изображений. Недостатком этого является то, что многие люди используют правый клик для хороших вещей, таких как открытие ссылок в новом окне, получение дополнительной информации на веб-странице и т. Д.
Кроме того, это было сочтено «непрофессиональным», и многие веб-серферы будут удивляться тому, что вы должны скрывать или то, что вы считаете таким особенным, и часто могут уйти до того, как они это сделают, из чистого раздражения. Даже если бы вы могли защитить свои изображения с помощью какого-либо сценария без щелчка правой кнопкой мыши, реальность такова, что все веб-браузеры сохраняют копию ваших изображений на компьютере пользователя для будущего использования, поэтому опытный пользователь может легко перейти в свой кэш и просматривать ваши изображения в любом случае!
Водяной знак: возможно, лучшее решение — поместить на ваши фотографии простой водяной знак, что означает, что если люди украдут их, им придется либо обрезать ваш водяной знак, либо проигнорировать его, и в этом случае вы получите кредит. Настоящим недостатком водяного знака является то, что чем больше вы хотите защитить свое изображение, тем меньше его можно использовать. Уверенное размещение водяного знака по диагонали на вашем изображении означает, что никто не сможет его украсть, но тогда возникает вопрос: кто-нибудь даже взглянет на ваш сайт?
Вставьте его во Flash или Java: многие веб-авторы пытаются использовать реальные изображения на своих сайтах, помещая изображения во Flash Movie или Java-апплет. Хотя это означает, что пользователи не могут напрямую сохранять изображения на своих компьютерах, они все равно могут делать снимок экрана с помощью кнопки PrintScreen на большинстве современных клавиатур.
Хотя это, вероятно, не принесло вам большого оптимизма, одним из ключей к участию в онлайн-сообществе является возможность делиться и расти. Почему вы хотите иметь сайт с вашими фотографиями? Возможно, потому что вы видели чужие и восхищались их работой. Я бы посоветовал вам взглянуть на многих известных фотографов, у которых есть сайты в сети — вы обнаружите, что немногие используют какой-либо механизм защиты, так как веб-фотографии настолько плохого качества для печати, что вряд ли кто-нибудь когда-либо будет использовать их снаружи Интернет. Вы можете, конечно, использовать эту тенденцию: предоставлять небольшие и средние изображения для предварительного просмотра и продавать большие отпечатки с вашего сайта!
Надеюсь, это поможет, Филипп. Для получения более подробной информации об отключении щелчка правой кнопкой мыши и защите изображений или кода обязательно обратите внимание на статью Рози Уайз по этой самой теме — она появится в SitePoint на следующей неделе!
Временные всплывающие окна
Я хочу, чтобы всплывающее окно появлялось при доступе пользователей к моей домашней странице, но затем я хочу, чтобы оно снова исчезло через десять секунд. Я также хотел бы показать таймер на самом всплывающем окне, которое говорит «закрытие …» и сообщает пользователю, сколько секунд осталось до исчезновения всплывающего окна. Как это сделать? Джеймс
Нет проблем, Джеймс! Прежде всего, давайте возьмем наш код «Window Opener» из одной из предыдущих статей ( от PopUnders до Rollovers ):
<html> <head> <script language="JavaScript"> <!-- hide from JavaScript-challenged browsers function openWindow(url, name) { popupWin = window.open(url, name, 'width=400, height=600,left=100,top=100') } // done hiding --> </script> </head> <body onLoad="openWindow('myAnnouncer.html','Announce');"> </body> </html>
Это откроет небольшое окно с нашим файлом myAnnouncer.html. Наш файл myAnnouncer.html будет выглядеть примерно так:
<html> <head> </head> <body> <div id="Clock" align="Center"> </div> <script> now=10 function tick() { timeString=now; Clock.innerHTML = "Window will close in: " + timeString; now=now-1; if(now==0) { window.close(); } window.setTimeout("tick();", 1000); } window.onload = tick; </script> Put your text here </body> </html>
Выпадающая навигация
Доктор, я хочу создать навигационные меню, которые «выпадают» при наведении курсора мыши на ссылку… Например, если вы наведите курсор мыши на ссылку «Компания» на моем сайте, я хочу, чтобы отображался список подкаталогов. И когда вы наводите указатель мыши на элемент в подкаталоге, при необходимости отображаются дополнительные подкаталоги и т. Д. Это похоже на меню, которое Windows использует для программ, где программы каскадно направляются (или уходят) в более специфические приложения. Как я могу построить это? — Джессика
Джессика, я точно знаю, о чем ты говоришь. Создание систем динамического меню должно осуществляться с должным вниманием и уважением к вашим пользователям, поэтому сначала подумайте о них. Если вы решите, что именно так вы и хотите, вот несколько достойных систем, которые позволят вам иметь подменю:
- http://www.opencube.com/effect_dqm.html
- http://www.webreference.com/dhtml/column65/
- http://www.softcomplex.com/products/tigra_menu/
Печать против разрешения экрана
Док: интересно, не могли бы вы помочь мне. В настоящее время я разрабатываю веб-сайт шириной 700 пикселей. К сожалению, когда страница печатается, слова обрезаются. Я не хочу проектировать под 640, поскольку большинство пользователей работают с более высоким разрешением, чем это, но мне нужно, чтобы эти страницы были пригодными для печати. Какие-либо предложения? — Кэт
Кэт, если вы укажете фиксированную ширину для своей таблицы или предметов, то они всегда будут отображаться при этой ширине. Гораздо лучшая техника, особенно для печати, — указать ширину в% для вашей таблицы. Таким образом, ваша страница будет хорошо масштабироваться до любого размера и будет красиво печататься!
Сломанный код таблицы
Я пытаюсь показать все это из таблицы, где newsid = $ comments. У меня есть 2 записи с одинаковыми новостями, поэтому они должны показывать 2 записи. Вместо этого он продолжает показывать 1, но много раз вниз по странице он случайным образом отображает 2. Вот код:
$sql = "SELECT newsid, comname, comdate, comcontent FROM comments WHERE newsid = $comments"; while ($getnews = mysql_fetch_array(mysql_query($sql))) { echo ("<TR><TD>Name: " . $getnews["comname"] . "</TD></TR>"); echo ("<TR><TD>Posted at: " . $getnews["comdate"] . "</TD></TR>"); echo ("<TR><TD>Comment: " . $getnews["comcontent"] . "</TD></TR>"); echo ("<TR><TD><HR></TD></TR>"); }
В чем дело? — Брайан
Брайан, проблема в том, что каждый раз, когда вы запускаете « $getnews = mysql_fetch_array(mysql_query($sql)
» $getnews = mysql_fetch_array(mysql_query($sql)
вы вызываете один и тот же запрос. Попробуйте вместо этого:
$sql = "SELECT newsid, comname, comdate, comcontent FROM comments WHERE newsid = $comments"; $r = mysql_query($sql); while ($getnews = mysql_fetch_array($r)) { echo ("<TR><TD>Name: " . $getnews["comname"] . "</TD></TR>"); echo ("<TR><TD>Posted at: " . $getnews["comdate"] . "</TD></TR>"); echo ("<TR><TD>Comment: " . $getnews["comcontent"] . "</TD></TR>"); echo ("<TR><TD><HR></TD></TR>"); }
Встраивание медиа-плеера
Как мне это сделать, и где я могу найти больше информации? — Триш
Триш, вы легко можете использовать проигрыватель Windows Media на своей странице с минимальным использованием встроенных элементов управления. Просто вставьте элемент управления на свою страницу, используя <object>
.
По умолчанию при использовании Media Player вы увидите встроенные элементы управления для воспроизведения, паузы, остановки и громкости в дополнение к кадру воспроизведения видео. Однако, установив для параметра ShowControls
значение False, эти элементы управления будут скрыты, что означает, что вы можете затем предоставить свой собственный механизм управления с помощью сценария. Вот некоторый базовый код, который будет отображать средство просмотра без каких-либо элементов управления:
<OBJECT ID="mPlayer" classid="CLSID:22d6f312-b0f6-11d0-94ab- 0080c74c7e95" TYPE="application/x-oleobject"> <PARAM NAME="FileName" VALUE="playback.asf"> <PARAM NAME="ShowControls" VALUE="FALSE"> </OBJECT>
Затем вы должны использовать код скрипта, подобный следующему:
<img src="play.gif" title="Play" onclick="mPlayer.Play()"> <img src="pause.gif" title="Pause" onclick="mPlayer.Pause()"> <img src="stop.gif" title="Stop" onclick="mPlayer.Stop()">
воспроизвести, приостановить или остановить проигрыватель. Media Player предлагает множество других свойств, методов и событий, которые вы можете использовать для настройки своего решения. Посетите этот ресурс для получения более подробной информации о программировании проигрывателя Windows Media.
Удобные валидаторы
Эй, Док, ты знаешь сайт, где я могу скопировать и вставить свой HTML-код в коробку, и он проверит его для меня? Я использую Dreamweaver, и он генерирует тонну плохого кода, который даже не используется (в основном при использовании таблиц). Это просто создает беспорядок, и когда я начинаю использовать include для новостей и прочего, все становится действительно не в форме. Помогите! Иордания
Джордан, вот несколько отличных валидаторов, которые вы можете проверить. Этот список был составлен добрыми людьми на www.sitepointforums.com !
- http://validator.w3.org/
- http://www.w3.org/People/Raggett/tidy/
- http://jigsaw.w3.org/css-validator/DOWNLOAD.html
- http://bobby.cast.org/bobby/html/en/index.jsp
- http://www.crossmyt.com/hc/htmlchek/htmlchek.html
- http://www.unipress.com/cgi-bin/WWWeblint
- http://www.webtechs.com/html-val-svc/
- http://www.netmechanic.com/toolbox/html-code.htm
Вот и все за этот месяц! Распространять любовь,