使用Perl进行chrome扩展

时间:2011-12-29 16:50:06

标签: perl google-chrome-extension

我是新手,我跟着official tutorial

我在桌面上创建了一个名为Chrome的文件夹,并将所有文件manifest.jsonpopup.htmlicon.png与文件guestbook.pl放在一起。现在manifest.json的内容与上面链接中的内容相同,但我根据我的需要更改了popup.html的代码:

<html>
<head>
<title>Guestbook</title>
</head>
<body>

<form action="/home/chankey/Desktop/Chrome/guestbook.pl" method="get">
<table>
<tr><td>Name</td><td><input name="name" type="text" value=""></td></tr>
<tr><td>E-Mail</td><td><input name="email" type="text" value=""></td></tr>
<tr><td>Location</td><td><input name="loc" type="text" value=""></td></tr>
<tr><td>Comments</td><td>
<TEXTAREA name="comments" rows="10" cols="32"></TEXTAREA></td></tr>
</table><br><br>
<input type="submit" value="Add Entry">
</form>

</body>
</html>

然后我在Google Chrome上添加了扩展程序。扩展成功添加,当我点击它时,会出现一个表单(来自popup.html)但是当我点击“添加条目”按钮提交数据时,脚本(guestbook.pl)不会运行。出现一个新页面,上面写着

  

此网页尚未找到,未找到网址的网页:chrome-extension://plkeijfkmjeakkbdclipkoadchbpgpdm/home/chankey/Desktop/Chrome/guestbook.pl?name =&amp; email =&amp; loc =&安培;注释=

为什么会这样?该脚本位于同一目录中,为什么Chrome不能找到它?


guestbook.pl

#!/usr/bin/perl

my $query_string = "";
#Get the input
if ($ENV{REQUEST_METHOD} eq 'POST') {
read(STDIN, $query_string, $ENV{CONTENT_LENGTH});
} else {
$query_string = $ENV{QUERY_STRING};
}
##### We will remove this
print "Content-Type: text/html\n\n";
print "Query String is \n<br> $query_string";
print "hi";
##### We will remove this

1 个答案:

答案 0 :(得分:4)

您无法在Chrome中运行Perl。 Chrome扩展程序是小型网页,只能使用客户端网络技术。因此,您使用的语言是JavaScript。

要创建留言簿样式扩展,您必须在Web服务器上运行guestbook.pl脚本,然后在扩展中使用来自JavaScript的AJAX调用来保存和获取数据。