javascript - 将变量传递给自动完成 JavaScript

标签 javascript perl

我有这个运行良好的基本自动完成 JavaScript,但您需要对网页进行硬编码。我想做的是使用 Perl 脚本将“自动完成”变量数据发送到页面

有效的 JavaScript 代码如下所示:

var CustomArray = new Array('an apple','alligator','elephant','pear','kingbird',
                          'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
                          'kingpin','SML');

现在新代码是:

var CustomArray=new Array(Autocomplete);

Perl 脚本将数据发送回浏览器,如下所示:

var Autocomplete = 'an apple','alligator','elephant','pear','kingbird',
'kingbolt','kingcraft','kingcup','kingdom','kingfish er','kingpin','SML'

我也试过

var Autocomplete = ['an apple','alligator','elephant','pear','kingbird',
                    'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
                    'kingpin','SML']

但我得到:'an apple','alligator','elephant','pear','kingbird','kingbolt','kingcraft','kingcup','kingdom','kingfish er ','kingpin','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> 

最佳答案

首先,看起来有错别字。输入元素的 idACMP 而您将 'ACOMP' 传递给 getElementById

其次,您没有提供 Perl 脚本的源代码。它可能看起来像这样:

#!/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

对于以下 HTML,自动完成工作:

<!DOCTYPE html>
<html>
<head>

<script type="text/javascript"
src="http://www.comicinvasion.com/Code/Java/Autocomplete/Autocomplete.js"></script>

<script type="text/javascript" src="http://www.comicinvasion.com/Code/Java/Autocomplete/Common.js"></script>

<!-- Replace with the URI of your script -->
<script type="text/javascript" src="http://test:8080/cgi-bin/autocomplete.pl"></script>

</head>

<body>

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

<script type="text/javascript">
var obj = actb(document.getElementById('ACOMP'), Autocomplete);
</script>

</body>
</html> 

最后,我觉得奇怪的是,您的 JavaScript 文件位于一个名为 Java 的目录中。

关于javascript - 将变量传递给自动完成 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8583165/

相关文章:

javascript - 读取存储在 SharePoint 列表中的用户

javascript - Node.js:在另一个自定义类中引用自定义类

regex - 在 Perl 中如何转义一些反斜杠但不是全部?

perl - 如何找出目录的模式(权限)?

linux - Perl 正则表达式递归替换多个文件组中的字符串,如 "*.php" "*.html"

JavaScript if 语句

javascript - GMap 绘图工具转图像 jpeg [静态 map URL]

perl - Perl代码段上的问题

arrays - 如何在没有循环的情况下初始化哈希值?

Javascript getElementsByClassName 返回一个奇怪的集合