Включить JavaScript в страницу, созданную Perl-CGI - PullRequest
0 голосов
/ 05 ноября 2010

Я пытался добавить java-скрипт к странице, которая генерируется на лету.Я попробовал это, но кажется, что это не работает.

<SCRIPT SRC=\"sorttable.js\"></SCRIPT>

Мне всегда нужно встроить javacode вместе с HTML, чтобы он работал.Любые подсказки?

Ответы [ 3 ]

3 голосов
/ 05 ноября 2010

qq() является эквивалентом "", но с соответствующими разделителями. Он будет вашим другом, если вы выводите HTML или JavaScript.

print qq(<script type="text/javascript">alert("The world is my oyster");</script>);

Обратите внимание, что вам не нужно использовать () в качестве разделителей, см. perlop .

Если вы выводите JavaScript, который строит HTML, вы должны использовать jQuery или Ext . Но в любом случае вы окажетесь в аду с несколькими уровнями спасения. JSON :: XS может сделать вашу жизнь менее болезненной. Также узнайте о здесь-документах :

my $js = <<'JS';
    alert( 'The world is my oyster' );
    var $href = "example.html";
    document.write( '<a href="' + $href + '">clicky</a>' );
JS
print qq(<script type="text/javascript">$js</script>);

Хитрость в вышесказанном заключается в том, что $href является переменной JavaScript, а не переменной Perl. (Да, идентификаторы JS могут включать $.)

2 голосов
/ 20 октября 2012

Возможно, эта ссылка может быть полезна: http://perlmeme.org/tutorials/cgi_form.html

Предоставляет метод встраивания функции jsp в форму-отправку следующим образом:

print $ q-> start_form ( -name => 'main_form', -method => 'GET', -enctype => & CGI :: URL_ENCODED,

  -onsubmit => 'return javascript:validation_function()',
  -action => '/where/your/form/gets/sent',   );

И есть следующая ссылка из библиотеки CGI Perl5 - поддержка Javascript, речь идет о связи функции javascript с событием http://cpansearch.perl.org/src/MARKSTOS/CGI.pm-3.60/cgi_docs.html#javascripting

Привет

0 голосов
/ 05 ноября 2010

Ну, это зависит от вашей структуры цитаты для вещи ВСЕ .Если вы печатаете это в неинтерполированном heredoc , то \" просто создает большую проблему.

   print <<'END_HTML';
   ...
      <SCRIPT SRC=\"sorttable.js\"></SCRIPT>
   ...
   END_HTML

или выражение aq:

  print q~
   ...
      <SCRIPT SRC=\"sorttable.js\"></SCRIPT>
   ...
   ~;

Так что вам придется показать больше своего контекста.Но позвольте мне заверить вас: когда я правильно выписываю теги, мои JavaScript-файлы поступают на страницу, как я и ожидал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...