我有两个脚本文件 - 一个是perl-cgi,另一个是javascript。在cgi脚本中,我编写了Javascript函数,用于从文本文件中检索数据(使用ajax)。然后,我将数据的内容传递给另一个名为main_function()
的函数。这将写入javascript文件(seq_new.js
)。加载页面时,未定义console.log报告main_function
。然后我刷新页面并显示结果。我不知道它为什么会这样。
Perl脚本如下:
#!/usr/bin/perl
print "Content-type:text/html\n\n";
use CGI;
my $a= new CGI;
my $processId = $a->param("processId");
.
.
my $file_path = "/$processId/$file_name[1]";
print <<HTML;
<!DOCTYPE html>
<html>
<head>
<title>RepEx - Result</title>
<script type="text/javascript" src="/min.js"></script>
</head>
<body>
<script>
file_load("$file_path","$filename");
function file_load(f1,f2)
{
var fileNm = f2;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200)
{
var pt = xhttp.responseText;
main_function(pt,fileNm,"$file_path",$file_cnt,"$head_st");
}
};
xhttp.open("GET", f1, true);
xhttp.send();
}
</script>
<script type="text/javascript" charset="utf-8" src='/seq_new.js'> </script>
</body>
</html>
我的javascript文件包含:
function main_function (a,file_seq,main_file,fle_cnt,header_set)
{
.
..
}
我遇到的问题
首次加载页面时,console.log
报告未定义main_function
且未显示任何结果。刷新页面后(按F5或单击重新加载按钮),将显示结果。