将变量传递给自动完成JavaScript

将变量传递给自动完成JavaScript,javascript,perl,Javascript,Perl,我有一个基本的自动完成JavaScript,它工作得很好,但是你需要硬编码网页。我试图做的是使用Perl脚本将“Autocomplete”变量数据发送到页面 工作的JavaScript代码如下所示: var CustomArray = new Array('an apple','alligator','elephant','pear','kingbird', 'kingbolt','kingcraft','kingcup','kingdom',

我有一个基本的自动完成JavaScript,它工作得很好,但是你需要硬编码网页。我试图做的是使用Perl脚本将“Autocomplete”变量数据发送到页面

工作的JavaScript代码如下所示:

var CustomArray = new Array('an apple','alligator','elephant','pear','kingbird',
                          'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
                          'kingpin','SML');
var Autocomplete = 'an apple','alligator','elephant','pear','kingbird',
'kingbolt','kingcraft','kingcup','kingdom','kingfish er','kingpin','SML'
#!/usr/bin/perl

use utf8;
use strict; use warnings;
use CGI();

local $| = 1;

print CGI::header(
    -type => 'text/javascript',
    -charset => 'utf-8',
);

print <<JS;
var Autocomplete = [
    'an apple','alligator','elephant','pear','kingbird',
    'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
    'kingpin','SML'
];
JS
现在新的代码是:

var CustomArray=new Array(Autocomplete);
Perl脚本将数据发送回浏览器,如下所示:

var CustomArray = new Array('an apple','alligator','elephant','pear','kingbird',
                          'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
                          'kingpin','SML');
var Autocomplete = 'an apple','alligator','elephant','pear','kingbird',
'kingbolt','kingcraft','kingcup','kingdom','kingfish er','kingpin','SML'
#!/usr/bin/perl

use utf8;
use strict; use warnings;
use CGI();

local $| = 1;

print CGI::header(
    -type => 'text/javascript',
    -charset => 'utf-8',
);

print <<JS;
var Autocomplete = [
    'an apple','alligator','elephant','pear','kingbird',
    'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
    'kingpin','SML'
];
JS
我也试过了

var Autocomplete = ['an apple','alligator','elephant','pear','kingbird',
                    'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
                    'kingpin','SML']
但是我得到:
“苹果”,“鳄鱼”,“大象”,“梨”,“王鸟”,“王冠”,“王冠”,“王国”,“王冠”,“王鱼”和“王牌”,“SML”
都是自动完成的一个字符串

我似乎无法使它正常工作。完整的HTML代码如下

<html>
<head>
<script language="javascript" type="text/javascript" src="http://www.comicinvasion.com/Code/Java/Autocomplete/Autocomplete.js"></script>
<script language="javascript" type="text/javascript" src="http://www.comicinvasion.com/Code/Java/Autocomplete/Common.js"></script>
<script language="JavaScript1.2" type="text/javascript" src="http://www.ComicInvasion.com/cgi-bin/Autocomplete.pl"></script>


<script>
var CustomArray=new Array(Autocomplete);
</script>

</head>

<body>

<input type='text' style='font-family:verdana;width:300px;font-size:12px' id='ACMP' value=''/>

<script>
var obj = actb(document.getElementById('ACOMP'),CustomArray);
</script>

</body>
</html> 

var CustomArray=新数组(自动完成);
var obj=actb(document.getElementById('ACOMP'),CustomArray);

让perl脚本返回以下内容:

var CustomArray = "an apple, alligator".split(',');
或者,如果必须这样,也没关系:

var CustomArray = "'an apple','alligator'".split(',');

很明显,我省略了其中的其余项目,但您将包括所有项目。

首先,看起来有一个打字错误。输入元素的
id
ACMP
,而将
'ACOMP'
传递给
getElementById

其次,您没有提供Perl脚本的源代码。可能是这样的:

var CustomArray = new Array('an apple','alligator','elephant','pear','kingbird',
                          'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
                          'kingpin','SML');
var Autocomplete = 'an apple','alligator','elephant','pear','kingbird',
'kingbolt','kingcraft','kingcup','kingdom','kingfish er','kingpin','SML'
#!/usr/bin/perl

use utf8;
use strict; use warnings;
use CGI();

local $| = 1;

print CGI::header(
    -type => 'text/javascript',
    -charset => 'utf-8',
);

print <<JS;
var Autocomplete = [
    'an apple','alligator','elephant','pear','kingbird',
    'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
    'kingpin','SML'
];
JS
#/usr/bin/perl
使用utf8;
严格使用;使用警告;
使用CGI();
当地$|=1;
打印CGI::页眉(
-类型=>'text/javascript',
-字符集=>'utf-8',
);

打印尝试了波思,我现在得到了'',你可以看到,只要在字母“a”中键入,看起来是打字错误。id感谢您的帮助!