gpt4 book ai didi

javascript - 如何使用 Perl CGI 弹出菜单打开新页面

转载 作者:行者123 更新时间:2023-12-05 03:54:34 24 4
gpt4 key购买 nike

我希望通过下面的 Perl-cgi 脚本,当我们在菜单中选择一个项目时打开一个新页面;就像我们对 window.open 所做的那样。如果有人知道我如何执行类似于以下的命令:window.open(' http://www.google.com ', '_blank', 'toolbar=0,location=0,menubar=0');

提前谢谢你

#!/usr/bin/perl -Tw
use strict;
use warnings;
use utf8;
use CGI ;
my $cgi = new CGI;
my %url = (
"https://www.google.com" => "google" ,
"https://www.msn.com" => "msn",
"https://www.yahoo.com" => "yahoo"
);
print $cgi->header("text/html;charset=UTF-8");
print "<!DOCTYPE html>";
print "<html>\n";
print "<head>\n";
print "</head>\n";
print "<body>\n";
print '<form>'."\n";
print $cgi->popup_menu(
- name => 'url',
- id => 'url',
- values => [sort keys %url],
- default => ['google'],
- labels => \%url,
- onchange => 'submit();'
#- onchange => "this.form.submit();"
);
print "</form>\n";
print "</body>\n";
print "</html>\n";

最佳答案

您几乎拥有它,但您可能想要 this.value .

print $cgi->popup_menu(
- name => 'url',
- id => 'url',
- values => [sort keys %url],
- default => ['google'],
- labels => \%url,
- onchange => q{window.open(this.value, '_blank', 'toolbar=0,location=0,menubar=0');},
);

但正如我所说,由于这些 CGI 方法已被弃用,请考虑使用替代方法,例如 Template::Toolkit . TT 中的一个常见模式是有两个文件,如下所示。

Perl 文件:

#!/usr/bin/perl -Tw

# my_form.cgi

use strict;
use warnings;
use utf8;
use HTTP::Headers;
use Template;

my $headers = HTTP::Headers->new;
$headers->header('Content-Type' => 'text/html;charset=UTF-8');
print $headers->as_string;

my %urls = (
"https://www.google.com" => "google" ,
"https://www.msn.com" => "msn",
"https://www.yahoo.com" => "yahoo"
);

my $template = Template->new;
$template->process('my_form.ttml', { urls => \%urls });

模板文件:

[%# my_form.ttml %]
<!DOCTYPE html><html>
<head>
</head>
<body>
<form>
<select name="url" id="url" onchange="window.open(this.value, '_blank', 'toolbar=0,location=0,menubar=0');">
[% FOREACH url IN urls -%]
<option value="[% url.key %]">[% url.value %]</option>
[% END -%]
</select>
</form>
</body>
</html>

可以看看Template::ManualTemplate::Manual::Intro有关 Template::Toolkit 的详细信息,或者您可以查看 CGI::Alternatives获取更多灵感。

关于javascript - 如何使用 Perl CGI 弹出菜单打开新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60837313/

24 4 0