Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > JavaScript и Perl


Автор: Lapochka 12.4.2006, 18:45
ребят.. такая проблемка.. есть такая вот страничка:

Код

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta name="keywords" content="МАИ">
<title>Самая первая группа МАИ 05-301</title>

<style type="text/css">
body { cursor:url('images/curs.cur');}
.menu { font-family:sans-serif; font-size:15px; font-weight:bold; letter-spacing:2pt; 
        font-style:normal; color:darkred; filter:dropShadow(offX=2,offY=2, color:#a0a0a0); 
        border-style:groove; border-color:#704F34; border-width:10px; text-align:center; cursor:hand}
.ss { font-family:Verdana; font-size:13px; font-weight:bold; color:#333333; cursor:hand }
</style>

<script language="javascript">
function opnewWin(s)
{ winank=window.open ("group.htm", s, "scrollbars=1, location=0, menubar=0, status=0, toolbar=0")}

function opMail()
{ winank=window.open ("mail.htm", "myWin", "location=0, menubar=0, status=0, toolbar=0, width=300, height=370")}

function menu(n)
{ for ( var i=1; i<=4; i++)
    {if (i!=n)
        eval('m'+i+'.style.display="none"')
    else
        eval('m'+i+'.style.display="block"')
    }
}

function men(i)
{if ((document.getElementById('im'+i).src).indexOf("plus.gif")>-1)
    {document.getElementById('in'+i).style.display="block"
     document.getElementById('im'+i).src="images/minus.gif"
    
    }
 else
    {document.getElementById('in'+i).style.display="none"
     document.getElementById('im'+i).src="images/plus.gif"
    }
}

function rgr(m)
{for ( var i=1; i<=6; i++){
    if (i=m){wint=window.open('rgr'+i+'.htm', "myWin", "scrollbars=1, location=0, menubar=0, status=0, toolbar=0, fullscreen=1")}
    return}
}

function ank()
{wint=window.open("form.htm", "myWin", "location=0, menubar=0, status=0, toolbar=0, scrollbars=1, fullscreen=1")}

</script>
</head>

<body bgcolor="#FFFFCC">
<br>
<table align="center" width="97%" border="0" cellpadding="10">
  <tr>
    <td width="20%" valign="top">
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr><td class="menu" onClick="menu(1)">Главная</td></tr>
        <tr><td class="menu" onClick="menu(2)">Учеба</td></tr>
        <tr><td class="menu" onClick="menu(3)">Форум</td></tr>
        <tr><td class="menu" onClick="ank()">Анкета</td></tr>
        <tr><td class="menu" onClick="menu(4)">Контакты</td></tr>
        <tr><td>&nbsp;</td></tr>
        <tr><td align="center"><strong><a href="http://mai05-301.narod.ru/">Старый сайт</a></strong></td></tr>
        <tr><td>&nbsp;</td></tr>
        <tr><td align="center">
              <a href="http://mai.exler.ru/"><img src="images/exler.gif" border="0" width="160" height="36"></a>
             </td>
        </tr>
      </table>
    </td>
    <td style="text-align:justify" valign="top">
        <div style="display:block" id="m1">
          <h3 align="center">Здравствуйте! Вы находитесь на сайте группы 05-301 МАИ (2003-2008гг.)</h3>
          На данный момент в группе учатся 30 человек (17 ж / 13 м). Несмотря на то, что состав группы периодически
          меняется, это слаженный коллектив со своими причудами и заморочками.<br>
          Если вы хотите посмотреть список группы, то нажмите сюда
          <input type="button" style="font-family:sans-serif; font-size:12px; font-weight:bold; 
          font-style:normal; color:#660000; filter:dropShadow(offX=2,offY=2, color:#a0a0a0); 
          text-align:center; cursor:hand" onClick="opnewWin('mywin')" value="Подглядеть">
          <br><br>
        </div>
        <div style="display:none" id="m2">
            <h3 align="center">Учебные материалы</h3>
            <div style="color:#330033; font-weight:bold"><i>Расписание на 2 семестр</i></div>
            <table border="0" align="center" width="98%">
              <tr>
                <td class="ss" align="center" onClick="rgr(1)">05-301</td>
                <td class="ss" align="center" onClick="rgr(2)">05-305</td>
                <td class="ss" align="center" onClick="rgr(3)">05-307</td>
                <td class="ss" align="center" onClick="rgr(4)">05-309</td>
                <td class="ss" align="center" onClick="rgr(5)">05-311</td>
                <td class="ss" align="center" onClick="rgr(6)">05-312</td>
              </tr>
            </table><br>
            <div style="color:#330033; font-weight:bold"><i>Материалы для учебы</i></div>
            <ul type="disc">
              <img src="images/plus.gif" id="im1" onClick="men(1)">&nbsp;&nbsp;Вычислительные системы, сети и телекоммуникации<br>
                <div id="in1" style="display:none">
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  <img id="bt1" border="0" src="images/but1.jpg" height="16" width="70" style="cursor:hand"
                    onmouseover="bt1.src='images/but2.jpg'"
                    onmouseout="bt1.src='images/but1.jpg'"
                    onmousedown="bt1.src='images/but3.jpg'"
                    onmouseup="bt1.src='images/but2.jpg'"> Файл 1
                </div>
              <img src="images/plus.gif" id="im2" onClick="men(2)">&nbsp;&nbsp;Технология производства летательных аппаратов<br>
                <div id="in2" style="display:none">
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  <img id="bt2" border="0" src="images/but1.jpg" height="16" width="70" style="cursor:hand"
                    onmouseover="bt2.src='images/but2.jpg'"
                    onmouseout="bt2.src='images/but1.jpg'"
                    onmousedown="bt2.src='images/but3.jpg'"
                    onmouseup="bt2.src='images/but2.jpg'"> Файл 1<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  <img id="bt3" border="0" src="images/but1.jpg" height="16" width="70" style="cursor:hand"
                    onmouseover="bt3.src='images/but2.jpg'"
                    onmouseout="bt3.src='images/but1.jpg'"
                    onmousedown="bt3.src='images/but3.jpg'"
                    onmouseup="bt3.src='images/but2.jpg'"> Файл 2
                </div>
            </ul>
        </div>
        <div style="display:none" id="m3"><br>Болталка<br></div>
        <div style="display:none" id="m4">
            <h3 align="center">Справочная информация</h3>
            <div style="color:#000066; font-weight:bold; font-style:italic; font-size:17px">Адрес МАИ</div><br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;125993, г.Москва, A-80, ГСП-3, Волоколамское шоссе, д.4<br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Факс:</b>&nbsp;(495) 158-29-77<br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>E-mail:</b>&nbsp;<a href="mailto:aet@mai.ru">aet@mai.ru</a>
            <br><br><div style="color:#000066; font-weight:bold">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            Дополнительную информацию об институте Вы сможете узнать на сайте 
            <a href="http://www.mai.ru/info/data/index.htm">МАИ</a><br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            Либо на сайте студентов МАИ - <a href="http://mai.exler.ru/">Mai.Exler.Ru</a></div><br>
            <div style="color:#000066; font-weight:bold; font-style:italic; font-size:17px">Как с нами связаться</div><br>
            <ul>
                <li>Вы можете придти к нам на любую пару (
                        <i onClick="rgr(1)" style="font-family:sans-serif; font-size:14px; font-weight:bold; 
                            color:#660000; cursor:hand">см.Расписание</i>).
                <li>Также Вы можете <b onClick="opMail()" style="font-family:sans-serif; font-size:14px; font-weight:bold; 
                        color:#660000; cursor:hand">написать</b> нам.
            </ul>
        </div>
    </td>
    <td width="20%" valign="top">
        <table width="100%" border="0" cellpadding="5">
          <tr>
            <td width="20%" valign="top" style="font-family:sans-serif; font-size:12px; font-weight:100; 
             font-style:normal; color:#000033; border-style:inset; border-color:#663333; border-width:10px">
           <a href=http://news.yandex.ru/><h5 style="color:#000066" align="center">Яндекс.Новости</h5></a>
            <script language=javascript src=http://www.yandex.ru/include/news.js></script></td>
          </tr>
          <tr><td>&nbsp;</td></tr>
        </table>
    </td>
  </tr>
</table>

<script>      
document.body.onmousedown=new Function("if (event.button==2||event.button==3)alert('Все права защищены :)')")
</SCRIPT>

<script language="JavaScript">
<!--
var scrollCounter = 0;
var scrollText = "Самая первая группа МАИ! 05-301 FOREVER";
var scrollDelay = 70;
var i = 0;
while (i ++ <140) scrollText = " " + scrollText;
function Scroller()
{ window.status = scrollText.substring(scrollCounter++, scrollText.length);
if (scrollCounter == scrollText.length)
scrollCounter = 0;
setTimeout("Scroller()",
scrollDelay);}Scroller();
//-->
</script>

<noscript><noscript> <plaintext><plaintext>

</body>
</html>


а как сделать так чтобы то что написано на JavaScript работало в Perl? напишите хотя бы примерчик! smile
а если кому-то не сложно то перловский файлик для этой странички. буду благодарна по гроб жизни!

Автор: DEER 13.4.2006, 09:01
Если страница статическая, то есть не генерируется из БД, то смысл использовать perl скрипт для её генерации теряется...
Но если очень нужно, можно написать так
Код

use CGI qw(:standard);
use strict;

$|=1;

print header(-charset=>'Windows-1251');
print '<html>     ';
print '<head>     ';
print '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> ';    
print '<meta name="keywords" content="МАИ">     ';
print '<title>Самая первая группа МАИ 05-301</title>     ';
print '<style type="text/css">     ';
print 'body { cursor:url(\'images/curs.cur\');}     ';
print '.menu { font-family:sans-serif; font-size:15px; font-weight:bold; letter-spacing:2pt;     ';
print '        font-style:normal; color:darkred; filter:dropShadow(offX=2,offY=2, color:#a0a0a0);     ';
print '        border-style:groove; border-color:#704F34; border-width:10px; text-align:center; cursor:hand}     ';
print '.ss { font-family:Verdana; font-size:13px; font-weight:bold; color:#333333; cursor:hand }     ';
print '</style>     ';
print '<script language="javascript">     ';
print '{ winank=window.open ("group.htm", s, "scrollbars=1, location=0, menubar=0, status=0, toolbar=0")}     ';
print 'function opMail()      ';
print '{ winank=window.open ("mail.htm", "myWin", "location=0, menubar=0, status=0, toolbar=0, width=300, height=370")}     ';
print 'function menu(n)     ';
print '{ for ( var i=1; i<=4; i++)     ';
print '    {if (i!=n)          eval(\'m\'+i+\'.style.display="none"\')     ';
print '    else    eval(\'m\'+i+\'.style.display="block"\')     ';
print '    }     ';
print '}     ';
print 'function men(i) ';    
print '{if ((document.getElementById(\'im\'+i).src).indexOf("plus.gif")>-1)     ';
print '    {document.getElementById(\'in\'+i).style.display="block"     ';
print '     document.getElementById(\'im\'+i).src="images/minus.gif"     ';
print '    }     ';
print ' else     ';
print '    {document.getElementById(\'in\'+i).style.display="none"     ';
print '     document.getElementById(\'im\'+i).src="images/plus.gif"     ';
print '    }     ';
print '}     ';
print 'function rgr(m)     ';
print '{for ( var i=1; i<=6; i++){     ';
print '    if (i=m){wint=window.open(\'rgr\'+i+\'.htm\', "myWin", "scrollbars=1, location=0, menubar=0, status=0, toolbar=0, fullscreen=1")}     ';
print '    return}     ';
print '}     ';
print 'function ank()     ';
print '{wint=window.open("form.htm", "myWin", "location=0, menubar=0, status=0, toolbar=0, scrollbars=1, fullscreen=1")}    </script> ';    
print '</head> <body bgcolor="#FFFFCC">    <br>     ';
print '<table align="center" width="97%" border="0" cellpadding="10">     ';
print '  <tr>     ';
print '    <td width="20%" valign="top">     ';
print '      <table width="100%" border="0" cellspacing="0" cellpadding="0">     ';
print '        <tr><td class="menu" onClick="menu(1)">Главная</td></tr>     ';
print '        <tr><td class="menu" onClick="menu(2)">Учеба</td></tr>     ';
print '        <tr><td class="menu" onClick="menu(3)">Форум</td></tr>     ';
print '        <tr><td class="menu" onClick="ank()">Анкета</td></tr>     ';
print '        <tr><td class="menu" onClick="menu(4)">Контакты</td></tr>     ';
print '        <tr><td>&nbsp;</td></tr>     ';
print '        <tr><td align="center"><strong><a href="http://mai05-301.narod.ru/">Старый сайт</a></strong></td></tr>     ';
print '        <tr><td>&nbsp;</td></tr>     ';
print '        <tr><td align="center">  ';    
print '              <a href="http://mai.exler.ru/"><img src="images/exler.gif" border="0" width="160" height="36"></a>     ';
print '             </td>     ';
print '        </tr>     ';
print '      </table>     ';
print '    </td>   ';    
print '    <td style="text-align:justify" valign="top">     ';
print '        <div style="display:block" id="m1">     ';
print '          <h3 align="center">Здравствуйте! Вы находитесь на сайте группы 05-301 МАИ (2003-2008гг.)</h3>     ';
print '          На данный момент в группе учатся 30 человек (17 ж / 13 м). Несмотря на то, что состав группы периодически     ';
print '          меняется, это слаженный коллектив со своими причудами и заморочками.<br>     ';
print '          Если вы хотите посмотреть список группы, то нажмите сюда     ';
print '          <input type="button" style="font-family:sans-serif; font-size:12px; font-weight:bold;  ';    
print '          font-style:normal; color:#660000; filter:dropShadow(offX=2,offY=2, color:#a0a0a0);  ';    
print '          text-align:center; cursor:hand" onClick="opnewWin(\'mywin\')" value="Подглядеть">     ';
print '          <br><br>     ';
print '        </div>     ';
print '        <div style="display:none" id="m2">     ';
print '            <h3 align="center">Учебные материалы</h3>     ';
print '            <div style="color:#330033; font-weight:bold"><i>Расписание на 2 семестр</i></div>     ';
print '            <table border="0" align="center" width="98%">     ';
print '              <tr>     ';
print '                <td class="ss" align="center" onClick="rgr(1)">05-301</td>     ';
print '                <td class="ss" align="center" onClick="rgr(2)">05-305</td>     ';
print '                <td class="ss" align="center" onClick="rgr(3)">05-307</td>     ';
print '                <td class="ss" align="center" onClick="rgr(4)">05-309</td>     ';
print '                <td class="ss" align="center" onClick="rgr(5)">05-311</td>     ';
print '                <td class="ss" align="center" onClick="rgr(6)">05-312</td>     ';
print '              </tr>     ';
print '            </table><br>     ';
print '            <div style="color:#330033; font-weight:bold"><i>Материалы для учебы</i></div>     ';
print '            <ul type="disc">     ';
print '              <img src="images/plus.gif" id="im1" onClick="men(1)">&nbsp;&nbsp;Вычислительные системы, сети и телекоммуникации<br>  ';
print '                <div id="in1" style="display:none">     ';
print '                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;     ';
print '                  <img id="bt1" border="0" src="images/but1.jpg" height="16" width="70" style="cursor:hand"     ';
print '                    onmouseover="bt1.src=\'images/but2.jpg\'"     ';
print '                    onmouseout="bt1.src=\'images/but1.jpg\'"     ';
print '                    onmousedown="bt1.src=\'images/but3.jpg\'"     ';
print '                    onmouseup="bt1.src=\'images/but2.jpg\'"> Файл 1     ';
print '                </div>     ';
print '              <img src="images/plus.gif" id="im2" onClick="men(2)">&nbsp;&nbsp;Технология производства летательных аппаратов<br>     ';

print '                <div id="in2" style="display:none">     ';
print '                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;     ';
print '                  <img id="bt2" border="0" src="images/but1.jpg" height="16" width="70" style="cursor:hand"     ';
print '                    onmouseover="bt2.src=\'images/but2.jpg\'"     ';
print '                    onmouseout="bt2.src=\'images/but1.jpg\'"     ';
print '                    onmousedown="bt2.src=\'images/but3.jpg\'"     ';
print '                    onmouseup="bt2.src=\'images/but2.jpg\'"> Файл 1<br>     ';
print '                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;     ';
print '                  <img id="bt3" border="0" src="images/but1.jpg" height="16" width="70" style="cursor:hand"     ';
print '                    onmouseover="bt3.src=\'images/but2.jpg\'"     ';
print '                    onmouseout="bt3.src=\'images/but1.jpg\'"     ';
print '                    onmousedown="bt3.src=\'images/but3.jpg\'"     ';
print '                    onmouseup="bt3.src=\'images/but2.jpg\'"> Файл 2     ';
print '                </div>     ';
print '            </ul>     ';
print '        </div>     ';
print '        <div style="display:none" id="m3"><br>Болталка<br></div>     ';
print '        <div style="display:none" id="m4">     ';
print '            <h3 align="center">Справочная информация</h3>     ';
print '            <div style="color:#000066; font-weight:bold; font-style:italic; font-size:17px">Адрес МАИ</div><br>     ';
print '            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;125993, г.Москва, A-80, ГСП-3, Волоколамское шоссе, д.4<br>     ';
print '            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Факс:</b>&nbsp;(495) 158-29-77<br>     ';
print '            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>-mail:</b>&nbsp;<a href="mailto:aet@mai.ru">aet@mai.ru</a>     ';
print '            <br><br><div style="color:#000066; font-weight:bold">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;     ';
print '            Дополнительную информацию об институте Вы сможете узнать на сайте     ';
print '            <a href="http://www.mai.ru/info/data/index.htm">МАИ</a><br>     ';
print '            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;     ';
print '            Либо на сайте студентов МАИ - <a href="http://mai.exler.ru/">Mai.Exler.Ru</a></div><br>     ';
print '            <div style="color:#000066; font-weight:bold; font-style:italic; font-size:17px">Как с нами связаться</div><br>     ';
print '            <ul>     ';
print '                <li>Вы можете придти к нам на любую пару (     ';
print '                        <i onClick="rgr(1)" style="font-family:sans-serif; font-size:14px; font-weight:bold;  ';    
print '                            color:#660000; cursor:hand">см.Расписание</i>).     ';
print '                <li>Также Вы можете <b onClick="opMail()" style="font-family:sans-serif; font-size:14px; font-weight:bold;     ';
print '                        color:#660000; cursor:hand">написать</b> нам.     ';
print '            </ul>     ';
print '        </div>     ';
print '    </td>     ';
print '    <td width="20%" valign="top">     ';
print '        <table width="100%" border="0" cellpadding="5">      ';
print '          <tr>     ';
print '            <td width="20%" valign="top" style="font-family:sans-serif; font-size:12px; font-weight:100;     ';
print '             font-style:normal; color:#000033; border-style:inset; border-color:#663333; border-width:10px">     ';
print '           <a href=http://news.yandex.ru/><h5 style="color:#000066" align="center">Яндекс.Новости</h5></a>     ';
print '            <script language=javascript src=http://www.yandex.ru/include/news.js></script></td>     ';
print '          </tr>     ';
print '          <tr><td>&nbsp;</td></tr>     ';
print '        </table>     ';
print '    </td>     ';
print '  </tr>     ';
print '</table>     ';
print '<script>        ';
print 'document.body.onmousedown=new Function("if (event.button==2||event.button==3)alert(\'Все права защищены :)\')")      ';
print '</SCRIPT>    <script language="JavaScript">    <!--     ';
print 'var scrollCounter = 0;     ';
print 'var scrollText = "Самая первая группа МАИ! 05-301 FOREVER";     ';
print 'var scrollDelay = 70;     ';
print 'var i = 0;     ';
print 'while (i ++ <140) scrollText = " " + scrollText;     ';
print 'function Scroller()  ';
print '{ window.status = scrollText.substring(scrollCounter++, scrollText.length);  if (scrollCounter == scrollText.length)    scrollCounter = 0;     ';
print 'setTimeout("Scroller()",    scrollDelay);}Scroller();    //-->    </script>    <noscript><noscript> <plaintext><plaintext>    </body></html> ';

Автор: nitr 13.4.2006, 12:08
жуть...

Автор: Lapochka 13.4.2006, 22:53
пасиб.. завтра попробую как встану.. надеюсь заработает )
а если нет ждите весточки!!!

Автор: korob2001 14.4.2006, 00:32
;)))))) На самом деле всё не так уж плохо, спсобов тьма. Если не хочешь отделять разметку от кода, то можно воспользоваться конструкцией "Документ здесь".
Код

#!/usr/bin/perl -T

print "Content-type: text/html\n\n";
print <<HTML_CODE;
<html>
     <head>
          <title>Test page</title>
     </head>
     <body>
          <center><h2>This is a test page.</h2></center>
     </body>
</html>
HTML_CODE


В итоге, получаем тот же результат, что и с большим кол-вом perint.
Конечно же код html меняй на свой. Так же, можно воспользоваться qq или q, а можно и просто в отедельный файл его вынести, открывать и выводить код из него или хранить в конеце этого же файла после его логического конца. smile

Автор: Lapochka 15.4.2006, 13:25
korob2001
как html вставить я знаю.. с этим нет вообще никаких проблем!!!
как сделать чтобы javascript заработал


DEER
если бы это еще работало smile страничка грузится с ошибками (не работает javascript)

Автор: BlackLFL 15.4.2006, 13:27
Цитата(Lapochka @ 15.4.2006, 14:25 Найти цитируемый пост)
как сделать чтобы javascript заработал

Perl тут непричем!

Автор: Lapochka 15.4.2006, 13:28
BlackLFL

не поняла? как это не при чем?
если ты не понял.. то мне нужно чтобы страничка, код которой я написала.. полностью работала в перле.
т.е. чтобы вместо http://localhost/index.html .. писать в http://localhost/cgi-bin/index.pl (исп. апач)
но грузилось чтобы одно и тоже! чтобы и менюшка нормально работала и все остальное тоже!

Автор: BlackLFL 15.4.2006, 13:43
Цитата(Lapochka @ 15.4.2006, 14:28 Найти цитируемый пост)
не поняла? как это не при чем?

Я все понял, а Вы боюсь не понимаете различие между Perl и JS.

Напишите
Код

#!/usr/bin/perl
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser); # For debuging

print "Content-type: text/html\n\n";

print <<HTML_CODE;
<html>
     <head>
          <title>Test page</title>
     </head>
     <body>
          <center><h2>This is a test page.</h2></center>
          <script>alert('Hello');</script>
     </body>
</html>
HTML_CODE
1;

и посмотрите результат
Добавлено @ 13:45
Цитата(Lapochka @ 15.4.2006, 14:25 Найти цитируемый пост)
как html вставить я знаю.. с этим нет вообще никаких проблем!!!

HTML, JS это текст, и вставляется одинаково ...

Автор: korob2001 15.4.2006, 15:07
Код

#!/usr/bin/perl -T

print "Content-type: text/html\n\n";
print <<HTML_CODE;
<html>
     <head>
          <title>Test page</title>
          <script language="javascript" type="text/javascript">
               <!--// This is a test script
               function showMessage() {
                     var message = "Hello, from JavaScript!";
                     window.alert(message);
               }
               //-->
          </script>
     </head>
     <body onload="showMessage()">
          <center><h2>This is a test page.</h2></center>
     </body>
</html>
HTML_CODE


Ну а если так попробовать? smile

Автор: Lapochka 15.4.2006, 18:32
я ж говорю.. при помощи обыкновенной вставки в принт нифига не работает. и просто как текст JS не вставить.. потому что работать нифига не будет!!

кто не верит. включите апач и посморите!
если б так работало я б наверное не писала сюда!!!
Добавлено @ 18:43
BlackLFL

Перл - на стороне сервера, JS - на стороне клиента!

перл не понимает вообще <script>!!!! не понимает!!!
и код который ты написал не работает!!!

Автор: korob2001 15.4.2006, 21:48
Цитата

кто не верит. включите апач и посморите!
если б так работало я б наверное не писала сюда!!!

А по твоему тут никто, кроме тебя, апач не включал? ;)))))) Я не первый раз генерирую код JavaScript. Тот код, который я тебе показал, прекрасно работает.
Цитата

Перл - на стороне сервера, JS - на стороне клиента!

Это и есть ответ на твой вопрос.

1. Клиент отправляет запрос на сервер.
2. Сервер обрабатывает запрос.
3. Если клиент обратился к исполняемому файлу, то сервер запускает запрашиваемое приложение (нашу программу).
4. Та генерирует ему запрашиваемую страницу.
5. Сервер отправляет её клиенту.

Заметь, что сначала страница генерируется на сервере ( вместе с кодом JavaScript, который и не должен выполняться на сервере, он не имеет никакого отношения к Perl или к серверу), затем сервер отправляет ответ клиенту, а только после загрузки страницы, браузер анализирует и транслирует код JavaScript или VBScript да и вообще что угодно. Обрати внимание на выделенную часть, она указывает на дистанцию между клиентом и сервером. Вообще Perl не интересует, что он генерирует, лишь бы это не нарушало его правила.
Цитата

перл не понимает вообще <script>!!!! не понимает!!!
и код который ты написал не работает!!!

smile Perl его и не должен понимать, этот тег должен понимать браузер клиета, точнее тоже не должен, но может. smile

ЗЫ: Кстати, так как твой JavaScript, достаточно большой, почему бы не подумать на тем, что бы вынести его в отдельный файл? Тогда Perl'у нужно будет вообще сгенерировать, только тег <script>.

Автор: S.A.P. 15.4.2006, 22:10
Я в перле не силен (случайно сюда зашел smile ). но обнаружил, что у тебя ссылки относительные:
images/curs.cur, group.htm, mail.htm и т.д.

Естественно, если твой скрипт находится в директории cgi-bin, ниче работать не будет smile . Ссылки надо делать абсолютными
/images/curs.cur, /group.htm, /mail.htm и т.д.



Автор: Lapochka 15.4.2006, 23:39
korob2001
мда.. наши преподы мудаки!!! нафиг тогда требовать чтобы в перловском файле работал JS smile

смари. я работаю вот в dreamweaver.. и я там предположим создаю файл JS где описываю все мне необходимые функции.. а как его вызывать эти функции? я просто раньше так никогда не делала.. я с этим работаю тока месяц всего лишь!
и в перле тогда как вставлять.. поподробнее плиз!
оч буду благодарна

Автор: BlackLFL 15.4.2006, 23:58
Цитата(Lapochka @ 15.4.2006, 19:32 Найти цитируемый пост)

перл не понимает вообще <script>!!!! не понимает!!!

А Perl ненадо понимать <script>, т.к. он отдает текст, и браузер сам уже решать будет, что ему делать с <script>.

Цитата

и код который ты написал не работает!!!

Учите мат часть, проверяйте настройки браузера.

Автор: nitr 16.4.2006, 00:02
А я чуток оффтопа... это где перл преподают 8) ?
Добавлено @ 00:04
Lapochka, какой у тебя браузер? Какую ошибку выдаёт скрипт (если выдаёт)?

Автор: korob2001 16.4.2006, 04:35
Цитата

мда.. наши преподы мудаки!!! нафиг тогда требовать чтобы в перловском файле работал JS

Я не знаю, кто у вас там преподы, хотя скорее всего они тут вообще не причём.
Цитата

смари. я работаю вот в dreamweaver.. и я там предположим создаю файл JS где описываю все мне необходимые функции.. а как его вызывать эти функции? я просто раньше так никогда не делала.. я с этим работаю тока месяц всего лишь! 

1. Создавай js файл.
2. Пиши в него код JavaScript.
3. Сохрани всё это дело.
4. Когда нужно будет подключить файл js, в теге <script> указывай атрибут src, где и указывай путь к твоему файлу js.
Например:
Файл main.js
Код

// Функция запрашивает имя клиента и выводит приветствие
function personalHello() {
        while (true) {
               var name = window.prompt("Как вас зовут?","") || "";
               if (name != "") {
                   window.alert("Привет, " + name + "!");
                   break;
               }
        }
}

Файл home.html
Код

<html>
    <head>
       <title>Test use js file</title>
       <script language="JavaScript" type="text/javascript" src="main.js"></script>
    </head>
    <body onload="personalHello()">
      <!--// Тело документа //-->
    </body>
</html>

Ложишь оба файла в один каталог и запускаешь файл home.html
Теперь Perl'у достаточно знать путь к js файлу и сгенерировать тэг <script></script>, вместо того, что бы генерировать и сам JavaScript, непосредственно в тело генерируемого документа.

ЗЫ: Мой тебе совет:
До тех пор пока ты не будешь отдавать себе полного отёта в том, что ты делаешь, ПОЛОЖИ ПОДАЛЬШЕ СВОЙ Dreamweaver, а потом ты и сама не захочешь им пользоваться.  smile Я например, до сих пор пишу HTML, CSS, JavaScript только в блокноте. Я не говорю, что тебе нужно делать то же самое, просто найди себе редактор с подсветкой синтаксиса этих языков и который не будет за тебя генерировать код.
Но это так, совет. Ты можешь его послушать, а можешь и просто пропустить мимо ушей. ;)))))) 

Автор: shootnix 16.4.2006, 09:09
Мдя, насчёт вставки JavaScript есть масса способов. Вот, к примеру, такой (здесь не обсуждалси):

Код

use CGI qw/:standard/;
use strict;

$JS = q~function hello() {
                  alert('Hello, Java'); //  хе-хе-хе
              }~;
print  header (-type  => 'text/html; charset=koi8-r'),
         start_html (-title  => 'Hello!',   
                            -script => $JS);
 

Автор: Paranoiamoto 16.4.2006, 19:12
nitr, Perl нам преподают в МАИ (Московский Авиационный Университет)smile

Самый простой способ:

Код

#!z:/usr/perl/bin/perl

print "Content-type: text/html\n\n";

print q%
<script language=JavaScript>
var h=(new Date()).getHours();
if (h > 23 || h < 7) document.write("<strong>Доброй НОЧИ!</strong>!");
if (h > 6 && h < 12) document.write("<strong>Доброе УТРО!</strong>!");
if (h > 11 && h < 19) document.write("<strong>Добрый ДЕНЬ!</strong>");
if (h > 18 && h < 24) document.write("<strong>Добрый ВЕЧЕР!</strong>");
</script>
%;


Лапочка,  Вместо qq||; пишем q%%; и все работает!;)

Perl может натыкаться на знакомые ему |, например, в коде Java....поэтому у тебя и появляются ошибки.
Поставь себе что-нибудь типа GridinSoft Notepad - там все замечательно видно! 

smile)Perl делает то, что ты написала, а не то, что имеешь ввиду;)) smile 
 

Автор: nitr 16.4.2006, 19:24
поправим код smile и в дальнейшем используем << smile как писал korob2001
Код

#!perl
print "Content-type: text/html\n\n";
print <<END_JS;
<script language=JavaScript>
var h=(new Date()).getHours();
if (h > 23 || h < 7) document.write("<strong>Доброй НОЧИ!</strong>!");
if (h > 6 && h < 12) document.write("<strong>Доброе УТРО!</strong>!");
if (h > 11 && h < 19) document.write("<strong>Добрый ДЕНЬ!</strong>");
if (h > 18 && h < 24) document.write("<strong>Добрый ВЕЧЕР!</strong>");
</script>
END_JS


т.к. ты можешь использовать проценты в коде ява-скрипта smile и получишь "фиг" от перла ;)

А выше http://forum.vingrad.ru/index.php?showtopic=91598&view=findpost&p=704304!
Никто конечно не заставляет... но всё же лучше хранить хтмл-код отдельно от перл-кода smile Так даже легче менять свой дизайн к примеру ;) 

Автор: BlackLFL 16.4.2006, 20:40
Цитата(nitr @  16.4.2006,  20:24 Найти цитируемый пост)
поправим код  и в дальнейшем используем <<  как писал korob2001

невсегда приемлимо, т.к. нельзя пользоваться табуляцией

Код

&html;
sub html {
    print <<END_JS;
    <script language=JavaScript>
    var h=(new Date()).getHours();
    if (h > 23 || h < 7) document.write("<strong>Доброй НОЧИ!</strong>!");
    if (h > 6 && h < 12) document.write("<strong>Доброе УТРО!</strong>!");
    if (h > 11 && h < 19) document.write("<strong>Добрый ДЕНЬ!</strong>");
    if (h > 18 && h < 24) document.write("<strong>Добрый ВЕЧЕР!</strong>");
    </script>
    END_JS
}

выдаст ошибку Can't find string terminator "END_JS" anywhere before EOF ...   

Автор: nitr 16.4.2006, 20:53
BlackLFL, не в этом ошибка smile)
Это уже не по теме обсуждение, тем более я указал, что лучше в файлах хранить, а вот с "%" согласись smile
Тем более табуляцию не используют smile в твоём случае smile ... к примеру любой модуль в комплекте с перл тому свидетель ;) 

Автор: korob2001 17.4.2006, 07:26
Цитата(BlackLFL @  16.4.2006,  17:40 Найти цитируемый пост)
невсегда приемлимо, т.к. нельзя пользоваться табуляцией

Почему нельзя? Если тебе нужно, что бы табуляция была в JavaScript, то достаточно лишь отключить интерполяцию. Например ставить два обратных слеша \\t, тогда Perl пропустит это, а JavaScript будет транслировать это как табуляцию. Можно так же отключить интерполяцию одинарными кавычками в начале, документа ТУТА  smile . Например:
Код
#!/usr/bin/perl -w
use strict;

print "Content-type: text/html\n\n";
print <<'JSCRIPT';
<html>
   <head>
      <title>Test</title>
      <script language="JavaScript" type="text/javascript">
          <!--//
          function showMessage() {
              window.alert("Это первая строка,\tа здесь была табуляция!\nЭто вторая строка.");
          }
          //-->
      </script>
   </head>
   <body onload="showMessage()">
      <center>
           <b>This is a test page</b>
      </center>
   </body>
</html>
JSCRIPT

Здесь табуляцию и перевод строки делает не Perl, а JavaScript.

Если ты имел ввиду то, что "Документ Здесь" должен всегда начинаться с начала строки, то обойти это можно довольно просто, вот тот же код, но "Документ Здесь" начинается с отступом:
Код
print "Content-type: text/html\n\n";
      print <<'      JSCRIPT';
          <html>
                <head>
                    <title>Test</title>
                    <script language="JavaScript" type="text/javascript">
                         <!--//
                           function showMessage() {
                               window.alert("Это первая строка,\tа здесь была табуляция!\nЭто вторая строка.");
                           }
                         //-->
                    </script>
                </head>
                <body onload="showMessage()">
                   <center>
                      <b>This is a test page</b>
                   </center>
                </body>
          </html>
      JSCRIPT

Просто нужно в конце документа поставить такое же кол-во пробелов или табуляций, сколь ты сделал в его начале. Вот здесь:
Код
'      JSCRIPT';

Для "Документа Здесь", применимы все те же правила, что и для строк. Например вот так можно выплнить системную комаду, с использованием "Документа здесь":
Код
#!/usr/bin/perl -w
use strict;
# Здесь я намеренно оставил табуляцию
      print <<`      BAT`;
            dir
      BAT

А вот пример того, как создать воложенные "документы ЗДЕСЬ":
Код
#!/usr/bin/perl -w
use strict;

my $title = "Это просто тестовый заголовок.";

print "Content-type: text/html\n\n";
print <<'      JSCRIPT', <<HTML;
<html>
   <head>
      <title>Test</title>
      <script language="JavaScript" type="text/javascript">
          <!--//
          function showMessage() {
              window.alert("Это первая строка,\tа здесь была табуляция!\nЭто вторая строка.");
          }
          //-->
      </script>
      JSCRIPT
   </head>
   <body onload="showMessage()">
      <center>
           <b>$title</b>
      </center>
   </body>
</html>
HTML

Заметь, что интерполяция отключена в теле этого "Документа здесь", до тех пор, пока не закончится вложенный документ.
А вот пример того, как заполнить хеш из строк "документа здесь":
Код
#!/usr/bin/perl -w
use strict;

my %hash = <<HASH =~ /\S+\s+/g;
key1 value1
key2 value2
key3 value3
key4 value4
key5 value2
HASH

# Сортируем и выводим содержимое хеша
foreach my $key ( sort { $hash{$a} cmp $hash{$b} || $a cmp $b } keys %hash ) {
        print "$key => $hash{$key}";
}
          

Автор: BlackLFL 17.4.2006, 09:24
korob2001, спасибо, ты убрал пробел в моих знаниях! ( получай плюс  smile  ) 

Автор: Nasok 8.6.2006, 07:17
Пардон, у меня тоже вопрос касательно работы Перла и Яваскрипта.

Наверное не совсем сюда, просто незнал куда точно писать.

Суть в следующем, Есть движек на перле ... и соответственно енекоторые функции на яваскрипте ... в своё время он был адаптирован под эксплоер .. и сейчас Мозила (к примеру) его не понимает.

Может есть какие нить советы по опитимизации сайта под мозиллу ...не исключая эксплоера конечно.

Я гвоорил с людьми мне сказали что это с Явой.

Вот обращаюсь к вам.

ЗАранее благодарен.

..а да и ссылка про то, о  чём речь. www.rhhz.ru/cgi-bin/chat/frame.pl - это Чат. Под эксплоером отлично работает ..(под мозиллой не хочет.)

:(

Автор: korob2001 8.6.2006, 08:11
Там помоему у тебя проблемы не с JavaScript и Perl, а самой разметкой в правом фрейме. Посмотри исходник HTML, правого фрейма, например вот эта часть кода:
Код

</TABLE></div><div id='news' style="position:absolute; visibility='hidden'"><TABLE>
    <TR>
      <TD><img src="img/m_logo.gif"</TD>
    </TR>
    <TR> 
      <TD>
  <html><head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251"> <title></title> <link rel=stylesheet href="../../album/css/style2.css" type="text/css"> </head> <body bgcolor="#000000" text="#FFFFFF" MARGINHEIGHT=5 TOPMARGIN=5 MARGINWIDTH=5 LEFTMARGIN=5>    
        <table border='0' width='100%' cellPadding='4' cellSpacing='2'>
        <tr><td class='t'><font color='#FFCC00'><b>Полное собрание сочинений !</b></font></td></tr>
        <tr><td class='t'>Дамы и господа. <br>Скоро откроется одна из основных частей RHHZ Comunity. <br> <br><b> <a href="http://people.rhhz.ru" target=_blank>http://people.rhhz.ru</a>  </b> <br> <br>Этот будет большой сайт посвящённый фотографиям наших людей, кол-во фотографий будет ежедневно пополнятся (места много, всем хватит)<br> <br>P.S. - У нас уже имеется огромная коллекция общих фотографий и некоторые люди уже заполняют ими сайт, но если вы считаете что у вас есть то, чего нет у нас и что это непременно должно быть на сайте - пишите - всё будет :)</td></tr>
        <tr><td class='t' align='right'><font color=#c0c0c0>07/11/04</font></td></tr>
        <tr><td class='t' bgcolor='#404040'></td></tr>
        </table>        
          </div></body></html>
</div></body></shtml>

Это последние строки правого фрейма. У тебя начинается ячейка таблицы и в ней же начинается новый документ  smile
Код

</TABLE></div><div id='news' style="position:absolute; visibility='hidden'"><TABLE>
    <TR>
      <TD><img src="img/m_logo.gif"</TD>
    </TR>
    <TR> 
      <TD>
  <html><head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251"> <title></title> <link rel=stylesheet href="../../album/css/style2.css" type="text/css"> </head> <body bgcolor="#000000" text="#FFFFFF" MARGINHEIGHT=5 TOPMARGIN=5 MARGINWIDTH=5 LEFTMARGIN=5>

Что за тэг </shtml>?
Судя по всему SSI включение или просто CGI приложение генерирует не то, что нужно или же не там где нужно. IE просто такие вещи глотает пытаясь сам исправить все твои ошибки, FF этого не делает, точнее делает, но не с таким успехом.  

Автор: Nasok 8.6.2006, 08:26
Спасибо, ну вот с тем что накладывается я разберусь, там просто действительно так сделано что на странице с атрибутом хайден сделано несколько вещей ... 

и просто при нажатии определённой ссылки  (в верхней части Чата) в правом фрэйме включается определённая (спрятанная ранее) информация ... как то список тех кто в чате, какие "тусы" итд ... 

с тем что это накладывается друг на друга .. я разберусь . .я. не совсем понимаю ... почему сам чат не запускается . .под эксплоером ... если видел .. там так же грузится и после загрузки запускается и всё окай .. а тут он даже грузить окно не хочет ...


или у него последовательно ..пока не загрузит правый не будет центральный ? ... помойму врятли. 

Если есть время - посоветуй что нибудь .. могу выслать на емаил или по асе код яваскрипта ... который запускает барабан чата. просто он довольно большой : )

Чат у нас давно существует ... и просто вот только ща я отошёл от работы немного и решил его оптимизировать и под фаир фокс ...итд : )

Заранее благодарен.

Автор: afork 8.6.2006, 16:27
Интересный момент ... у тебя js запускает main window .... ?
Если пришлешь скрипт на _webwork_@mail.ru ... погляжу ...  

Автор: Zuzu 24.10.2006, 14:43
Цитата(korob2001 @  17.4.2006,  10:26 Найти цитируемый пост)
 Можно так же отключить интерполяцию одинарными кавычками в начале, документа ТУТА   . Например:

#!/usr/bin/perl -w
use strict;

print "Content-type: text/html\n\n";
print <<'JSCRIPT';


Браво! Тоже не знал! А как кувыркался в свое время с интерполяцией внутри "документа здесь"...

Кстати, по поводу включения JS в код перл. Достаточно давненько написал программку. Она занималась "скрытием" (заменой на простейший JS) e-mail - адресов в HTML-коде. Естественно, замена e-mail производилась внутри CMS, пользователь набирал в визуальном редакторе "нормальные" адреса, а на страницу они уже выводилдись в "зашифрованном" виде. А чтобы алгоритым (назовем это так!) "шифрования" адреса (с помощью Perl на сервере) и "расшифровки"  (на клиенте JS) совпадали, а вернее, чтобы была возможность безболезненно поменять в дальнейшем, модуль:

1. Смотрел дату своего обновления
2. Сравнивал с датой .js файла
3. Если Perl-модуль более новы, .js файл обновлялся.

Код JS был "вписан" непосредственно в Perl файл.
И при этом использовался вызов из HTML внешнего JS-файла. Так было проще.

Вот так. =)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)