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


Автор: Firebird 25.6.2007, 11:18
  Сначала была HTML-страница (sample.htm):
 
Код

 <html>
   <head>
       <title>MAIN</title>

       <script language="javascript">
         function OpenWindow()
         {
           window.open('index.htm', 'newwin', config='height=250,width=300,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,[color=red]status=no[/color]');
         }
       </script>
   </head>

<input type='button' value='Open1' onClick='OpenWindow()'>
</html>


На ней есть кнопка для открытия другой страницы в новом окне. В новом окне меню, панель состояния отключались.

Код второй страницы index.htm очень простой:
Код

<html>
   <head>
       <title>Index</title>
   </head>

<h4>Index</h4>
</html>


Далее нужно было перевести первую страницу на Perl (sample.htm -> sample.pl) код:

Код

#!c:\perl\bin\perl.exe

use CGI qw \:standard\;

print "
  <html>
       <head>
          <title>MAIN</title>

          <script language='JavaScript'>
            function OpenWindow()
            {
              window.open('index.pl', 'newwin', config='height=250,width=300,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no');
            }
          </script>
       </head>";

print "<input type='button' value='Open1' onClick='OpenWindow()'>";
print "</html>";


Код второй страницы (index.htm -> index.pl):
Код

#!c:\perl\bin\perl.exe

use CGI qw \:standard\;

print "
  <html>
       <head>
          <title>Index</title>
       </head>";

print "<h4>Index</h4>";
print "</html>";


Новое окно для отображения index.pl открывается, но строка состояния не отключается, хотя для нового окна было указано status=no


Автор: nitr 25.6.2007, 12:47
Firebird, при чём тут перл?

Добавлено через 6 минут и 42 секунды
ой... у вас там ужас... smile
прочтите про модуль CGI и используйте его верно, а так если лень - гляньте форум в поиске CGI.pm можно ввести (как ввариант)

Добавлено через 8 минут и 10 секунд
да и по вашему коду - вообще этот модуль можно не использовать, а просто написать (у вас вместо use CGI ... )
Код

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

Автор: smartov 25.6.2007, 12:56
Firebird, видимо ты не знаком с матчастью.
Perl - язык серверной стороны, он генерирует html и к работе html-я на клиентской стороне отношения не имеет.
Javascript - язык клиентской стороны. Какой код нагенерил server-side скрипт (в твоем случае Perlовый), такой и будет работать.

Проверь какой код генерирует sample.pl (view source страницы). И все ли там верно.
Сделай так, чтобы код в точности соответствовал тому, что был у тебя в sample.htm кроме адреса открываемой страницы (сейчас он у тебя не полностью соответствует, например в параметре language кавычки одинарные, а были двойные).

Поэкспериментируй. Возьми старый sample.htm и поменяй там адрес на index.pl, проверь все ли корректно открывается.
Но в любом случае Perl тут не при чем. Ошибка на уровне HTML-кода

Автор: nitr 25.6.2007, 13:07
присоединюсь и добавлю:
Код

print <<HTML1;
       text text text
HTML1

можно так, чтобы не экранировать ковычки ;)

Автор: Firebird 25.6.2007, 13:39
 1)  Запустил sample.pl
 2)  Просмотр HTML-кода
 3)  Скопировал код и сохранил в файле temp.htm
 4)  Запускаю temp.htm все работает, т.е. в браузер (IE) perl-скрипт выдает ту же самую HTML-страницу.

  А про то, что perl-интерпретатор стоит на сервере, принимает perl-скрипт, обрабатывает, создает html-страницу, а браузер клиента получает эту страницу я в курсе.

Автор: Firebird 25.6.2007, 13:56
  Мне интересно, почему при создании нового окна атрибут status=no указывается (при просмотре html-кода он есть), но не действует. Хочу чтобы при наведении на ссылки,в панели status не показывались их адреса, и для этого решил скрыть эту панель, но она не скрывается...

Автор: nitr 25.6.2007, 16:01
Firebird, вы попробовали мои советы? Они очень хорошо дополняют, т.е. показывают некоторое решение (одно из многих).

Автор: Firebird 26.6.2007, 06:09
Вот новый скрипт в соответствие с Вашими рекомендациями:

Код

#!c:\perl\bin\perl.exe

print "Content-type: text/html\n\n";
print "
  <html>
       <head>
          <title>MAIN</title>

          <script language='javascript'>
            function OpenWindow()
            {
              window.open('index.pl', 'newwin',                config='height=250,width=300,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no');
            }
          </script>
       </head>

<input type='button' value='Open' onClick='OpenWindow()'>
</html>";



Вот код HTML-страницы, которая генерируется этим скриптом:

Код

<html>
       <head>
          <title>MAIN</title>

          <script language='javascript'>
            function OpenWindow()
            {
              window.open('index.pl', 'newwin', 
               config='height=250,width=300,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no');
            }
          </script>
       </head>

<input type='button' value='Open' onClick='OpenWindow()'>
</html>


  Все равно не получается, не могли бы Вы показать пример скрипта?

Автор: Vaneska 26.6.2007, 07:30
Этот скрипт содержит синтаксическую ошибку:
,location=no,codebold">status=no
а надо
,location=no,status=no

если исправить, то все заработает.

А скрытие тулбаров и правильное открытие окошка с помощью javascript советую поискать в javascript форуме, там должно быть.

Автор: igorold 26.6.2007, 08:21
Цитата(Firebird @  26.6.2007,  06:09 Найти цитируемый пост)
Все равно не получается, не могли бы Вы показать пример скрипта? 

а что не получается?
у меня открывается окно согласно параметрам ... все работает ... у меня Мозилла ... 

Автор: smartov 26.6.2007, 10:18
Firebird, как не стыдно обманывать.

Цитата(Firebird @  26.6.2007,  05:09 Найти цитируемый пост)
codebold">status=no');


Цитата(Firebird @  26.6.2007,  05:09 Найти цитируемый пост)
,status=no');


Не может из первого получиться второе.
Код html верный и вон товарищ подтверждает что работает.
Ищи ошибку в hans.sys

Цитата(Firebird @  25.6.2007,  12:39 Найти цитируемый пост)
А про то, что perl-интерпретатор стоит на сервере, принимает perl-скрипт, обрабатывает, создает html-страницу, а браузер клиента получает эту страницу я в курсе. 

Любой человек который _в курсе_ никогда не задаст вопроса, подобного сабжу этого топика ("JavaScript в HTML и Perl неодинаковый?")

Похоже ты мало что не следишь за кодом так еще и боишься признавать что чего-то не знаешь. Помогать таким людям себе дороже. 
Удачи в разбирании проблемы _самостоятельно_

Автор: Zukoff 4.7.2007, 14:47
Имхо вобще путь написания программы на перле таким образом это возвращение назад в 90е годы.\
На текущий момент есть CGI::Builder - пол дня почитать документацию и сайты клепаются за пять минут.
Или Catalyst - тут придется попотеть, зато можно делать очень крупные и быстрые сайты.
И вобще, чаще ходите на search.cpan.org

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