Евгений Рукавишников. Web-master FAQ --------------------------------------------------------------- Оригинал этой странички расположен на http://wbm.tsu.ru/re/wm_faq.html ║ http://wbm.tsu.ru/re/wm_faq.html К тому же она там регулярно пополняется. Updated at 13 feb 1993 ---------------------------------------------------------------
http://www.tsu.ru/ http://www.netscape.com/ http://www.microsoft.com/CGI-программа на Perl ( rurl.pl ):
# случайный URL open (FILE, "<LINKS.LST"); # открываем файл LINKS.LST на чтение @url = (<FILE>); # прочитали файл в массив, один элемент массива - одна строка из файла close (FILE); srand ( time ); $index = int ( rand ( $#url + 1 ) ); # получили случайное число в интервале от 0 до $#url + 1 print "Location: ", $url[$index], "\n\n"; exit;Фрагмент вызова программы в HTML-файле:
<a href="/cgi-bin/rurl.pl">Случайный URL</a>
http://www.myhost/pics/img01.gif http://www.myhost/pics/img02.gif http://www.myhost/pics/img03.jpgФрагмент вызова программы в HTML-файле:
<img src="/cgi-bin/rurl.pl">Внимание! Этот способ не очень хорошо подходит для демонстрации рекламных банеров. Хотя, в некоторых случаях можно использовать и эту программу. : )
<HTML>
<HEAD>
<TITLE>My page</TITLE>
<SCRIPT Language="JavaScript">
<!--
var Nwindow = null
function OpenNW ( url, name, parms ) {
Nwindow = window.open( url, name, parms );
}
// -->
</SCRIPT>
</HEAD>
<BODY>
...
Вызвать это безобразие можно следующими способами:
<BODY onload="javascript:OpenNW('some.html', 'window_name', 'width=300,height=100')" ... >
или
<a href="javascript:OpenNW('some.html', 'window_name', 'width=300,height=100')">...</a>
и т.д.
some.html - это для примера, вместо этого должен стоять URL на файл который вы хотите отобразить в открываемом окне.Помимо WIDTH и HEIGHT через переменную parms можно передать следующие параметры открываемого окна - [toolbar=yes|no], [location=yes|no], [directories=yes|no], [status=yes|no], [menubar=yes|no], [scrollbars=yes|no], [resizable=yes|no]
<FORM> <SELECT Name="list"> <OPTION Selected Value="file01.html">Документ #1</OPTION> <OPTION Value="file02.html">Документ #2</OPTION> <OPTION Value="file03.html">Документ #3</OPTION> <OPTION Value="file04.html">Документ #4</OPTION> </SELECT> <INPUT Type=button Value="Go" onClick="window.location.href=this.form.list.options[this.form.list.selectedIndex].value"> </FORM>
open(FILE, "<my_lg.jpg");
print "Content-type: image/jpeg\n\n";
binmode( FILE );
binmode( STDOUT );
while (read(FILE, $data, 4096)) {
print $data;
}
close(FILE);
Вызов из HTML-документа будет выглядеть так:
<img src="/cgi-bin/show_img.pl">
open(IFILE, "<$ARGV[0]"); @line = (<IFILE>); close(IFILE); $all_lines = join( "", @line); $all_lines =~ s/<([^>]*)>//g; open(OFILE, ">$ARGV[1]"); print OFILE $all_lines; close(OFILE);Фрагмент этой программки можно использовать в CGI-программах для удаления HTML тэгов (например в Guest Book или Message Board)
<SCRIPT LANGUAGE="JavaScript">
<!--
Version = navigator.appVersion.substring(0,1);
flag = 0;
if (Version > 2) {
flag = 1;
}
function switch_img(imgName, imgURL) {
if (flag == 1) {
document.images[imgName].src = imgURL;
}
}
// -->
</SCRIPT>
Вызывается это следующим образом:
<a href=some.html onMouseOver="switch_img('pic01','box02.gif')" onMouseOut="switch_img('pic01','box01.gif')">
<img name="pic01" src="box01.gif" width=10 height=10 border=0> Текст</a>
onMouseOver - вызывается, когда курсор "наехал" на линк.
#!/usr/local/bin/perl # banner.pl $banner[0] = '<a href="http://www.some.site/><img src=benner0.gif width=468 height=60 alt="banner0"></a>"'; $banner[1] = '<a href="http://www.some.site/><img src=benner1.gif width=468 height=60 alt="banner1"></a>"'; $banner[2] = '<a href="http://www.some.site/><img src=benner2.gif width=468 height=60 alt="banner2"></a>"'; $banner[3] = '<a href="http://www.some.site/><img src=benner3.gif width=468 height=60 alt="banner3"></a>"'; $banner[4] = '<a href="http://www.some.site/><img src=benner4.gif width=468 height=60 alt="banner4"></a>"'; srand(time); $index = int(rand($#banner+1)); # некоторые сервера требуют более детального описания content # для них требуется выдавать в STDOUT еще одну строку: # print "Content-type: text/html\n\n"; print $banner[$index]; exit;Вызов в HTML-документе:
<!--#include "/cgi-bin/banner.pl"--> <!--#include virtual="/cgi-bin/banner.pl"--> <!--#exec cgi="/cgi-bin/banner.pl"-->P.S. Ротацию банеров моджно сделать и для обычного .html, но это слегка сложнее.