Клуб друзей



Часто задаваемые вопросы

Вопрос 1. Как закрыть окно браузера откытое из другого окна?
Ответ: Никак, если родительское окно уже закрыто или нет механизма закрытия порожденного окна в родиттельском. Массива windows просто не существует, а в TaskBar нам никто не позволит лезть.

Вопрос 2. Как сделать так, чтобы мою страницу нельзя было открыть в чужом фрейме?
Ответ: Нужно в начале страницы, желательно в заголовочной части вставить скрипт:

<Script language="JavaScript">
<!--
setTimeOut("NFrame()",100);
function NFrame() {
if (self.parent.frames.length !=0)
self.parent.location="URL вашей страницы";
}
//-->
</Script>

Вопрос 3. Как сделать так, чтобы при нажатии на кнопку, открывался блокнот с текстом данного HTML-документа?
Ответ: Вот такой текст:

<form>
<input type="Button" Name="view" Value="Посмотреть текст в блокноте"
onClick="window.location='view-source:'+window.location.href">
<form>

Вопрос 4. Нужно, чтобы дата обновления документа проставлялась автоматически, как это реализовать?
Ответ: Вот небольшой скрипт: (время юлианское)

<Script language="JavaScript">
<!--
document.writeln('Документ обновлен: '+document.lastModified);
//-->
</Script>

Вопрос 5. Нужно чтобы при подведении указателя мыши на ячейку таблицы - цвет фона изменился, а при удалении указателя - восстановился?
Ответ: Используются CSS и события связанные с мышью OnMouseOver и OnMouseOut. Если нужно еще и по клику - используйте еще и OnMouseDown:

<TABLE BORDER="0">
<TR>
<TD style="background: #0080C0" onMouseOver="style.background='#FF0000'" onMouseOut="style.background='#0080C0'">Текст в ячейке</TD>
</TR>
</TABLE>

Вопрос 6. На некоторых страницах имеется ссылка или кнопка при клике на которой страница добавляется в избранное, как такое сделать?
Ответ: Работает только под MSIE:

<a href="#" onClick="window.external.addFavorite('http://You.site.ru', 'Комментарий');
return false;">Добавитть сайт в избранное</a>

Вопрос 7. Нужно сделать страницу с нулевыми отступами от краев окна браузера. В MSIE нормально, а Netscape не понимает атрибуты отступа в теге BODY?
Ответ: Netscape тоже понимает, но только атрибуты пишутся по-разному. Чтобы оба браузера понимали следует писать так: <body topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>

Вопрос 8. Как сделать без SSI меню, которое бы хранилось отдельным файлом и подгружалось в каждую страницу?
Ответ: Меню в этом случае пишется полностью на JavaScript, но без ключевых слов например:

document.writeln('<a href="mypage1.htm">Страница1</a><br>');
document.writeln('<a href="mypage2.htm">Страница2</a><br>'); //и так далее

Сохраняем отдельным файлом, например menu.js и в нужном месте HTML страниц пишем:

<script language=javascript src=menu.js></script>

Небольшой совет: Желательно делать ссылки графическими. Дело в том, что если кодировка страницы по умолчанию стоит 1251 и сервер перекодирует ваши страницы перед выводом например в КОИ8 для UNIX или наоборот, то подгружаемый файл перекодировка не затронет. Поэтому если кодировка 1251 - на UNIX (LINUX) будут выводиться "кракозебры". Глобальные CSS на отображение из JS файла распространяются.

Вопрос 9. Как сделать, чтобы не перегружать страницу кнопками-баннерами, и выводились они по 3 штуки, но на каждой странице случайным порядком из общего числа например 20. При этом можно было легко добавлять или убирать лишние кнопки?
Ответ: Делаем приблизительно такую же структуру как и в предыдущем вопросе:

var koll=4; // общее число кнопок
kview=2; // выводить одновременно
l1='<a href="http://www.webprogltd.ru/go.php?go=http://site.ru"><IMG SRC="http://url_image/banner.gif" WIDTH="88" HEIGHT="31" BORDER="0" ALT=""></a>';
l2='еще кнопка';
l3='опять кнопка';
l4='снова кнопка';
// и так далее
var lnks = new Array(l1,l2,l3,l4); // при добавлении, добавляется и сюда.
var vlnk = new Array(kview);
np=0;
adds=true;
adda=true;
while (adds) {
var r=(Math.random()*koll);
r=(Math.round(r));
for (var i=0; i<(kview+1); i++) if (vlnk[i] == lnks[r]) { adda=false;}
if (adda){
np++; vlnk[np] = lnks[r];
if (np >= kview) adds=false;
}
adda=true;
}
for (var i=1; i<(kview+1); i++) document.writeln(vlnk[i]+'<br>');

Называем этот файл например k.js и обращаемся в нужном месте:
<script language=javascript src=k.js></script>. Все отмеченное красным и коричневым - редактируется

Вопрос 10. Стандартные рамки таблиц смотрятся плохо, этот псевдообъемный вид... Как сделать свое обрамление заданным цветом и толщиной?
Ответ: Просто нужно вставить в таблицу с нулевыми отступами и заданным цветом бэкграунда другую таблицу с параметром cellspacing отличным от нуля, который то и будет задавать толщину рамки цветом бэкграунда внешней таблицы (отмечено красным):

<TABLE width="300" cellpadding="0" cellspacing="0" BORDER="0" bgcolor="#FF0000">
<TR>
<TD>
<TABLE width="100%" cellpadding="3" cellspacing="1" BORDER="0">
<TR>
<TD bgcolor="#FFFF80">Текст в первой колонке первой строке</TD>
<TD bgcolor="#FFFF80">Вторая колонка первая строка</TD></TR>
<TR>
<TD bgcolor="#DFDFDF">Первая колонка вторая строка</TD>
<TD bgcolor="#DFDFDF">Вторая колонка вторая строка</TD>
</TR>
</TABLE>
</TABLE>

Текст в первой колонке первой строке Вторая колонка первая строка
Первая колонка вторая строка Вторая колонка вторая строка


Попробуем этой же таблице дать обрамление в виде пунктирной линии:

Текст в первой колонке первой строке Вторая колонка первая строка
Первая колонка вторая строка Вторая колонка вторая строка

Как такое сделать? Все просто. Нужен рисунок в качестве бэкграунда внешней таблицы. Здесь использован GIF-рисунок 6х6 пикселов, сделать в виде шахматной доски как показано на рисунке, при этом белые квадратики нужно сделать прозрачными для того, чтобы проступал фон нижней таблицы:

<TABLE width="300" cellpadding="0" cellspacing="0" BORDER="0" bgcolor="#ffffff" background="punctir.gif">
<TR>
<TD>
<TABLE width="100%" cellpadding="3" cellspacing="1" BORDER="0">
<TR>
<TD bgcolor="#FFFF80">Текст в первой колонке первой строке</TD>
<TD bgcolor="#FFFF80">Вторая колонка первая строка</TD></TR>
<TR>
<TD bgcolor="#DFDFDF">Первая колонка вторая строка</TD>
<TD bgcolor="#DFDFDF">Вторая колонка вторая строка</TD>
</TR>
</TABLE>
</TABLE>




[
К оглавлению]  [В начало] [Дальше]

WDstudio © 2000г.