我创建了一个perl脚本,它从服务器获取运行时数据并显示在html页面上。我没有在那里使用任何数据库。
我必须将另一个perl脚本与1个javascript变量相关联。我希望将该值设置为全局,以便我可以从任何地方访问。
这是问题
为了测试当我在perl脚本中包含javascript函数时它会提醒我传递的值但是如果我将该函数放在js文件中并调用它,它就不会发出任何警报。我尝试从多个位置调用js文件,但没有运气:(
有人可以帮忙解决这个问题吗?
这是来自js文件的代码
`$(document).ready(function(){
function aabcd(){
var y=document.getElementById("mnth").value;
alert(y);
}
});
`
这是完整的代码。
我在这里遇到问题我无法调用此test.js文件。如果我在这个perl脚本中包含这个文件的内容,那么它工作正常,但我想使用via文件,以便我可以将这些变量用作全局。 `
#!/usr/bin/perl
#!/bin/ksh
use CGI qw(:standard escapeHTML);
print <<EOH;
Content-Type: text/html; charset=ISO-8859-1
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="en" />
<title> ITSS UNIX report</title>
<style type="text/css">
h1 { font-size: 24px; }
body {
font: 13px tahoma;
background: #ffffff;
margin: 1em 2em;
padding: 0em;
}
</style>
<link rel="stylesheet" type="text/css" href="/example1.css" />
<script type="text/javascript" src="/DropMenu1.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript" src="/test.js"></script>
</head>
<body>
<TABLE WIDTH="100%" cellSpacing=0 cellPadding=1 align=center border=0 style='border: 1px solid; border-width: 0 0 0 0; border-style:solid; margin: 0; padding: 0;' bordercolor=#B
DBDBD>
<TR>
<TD width=100% BGCOLOR=#000066 ALIGN=center><FONT style='font-size: 28.0pt;mso-bidi-font-size: 11.0pt;font-family: tahoma;color: #FFFFFF;background-color=#000066'>User Audit Sec
urity Report</TD>
</TR>
</TABLE>
<form name="myform">
<select name="year" id="year">
<option value="2011">2011</option><option value="2012">2012</option></select>
<select name="mnth" id="mnth" onchange="return aabcd();">
<option value="-1" class="item1" >Click for Month</option>
<option value="Jan" class="item2" >January </option>
<option value="Feb" class="item2" >February</option>
<option value="Mar" class="item2" >March </option>
<option value="Apr" class="item2">April</option>
<option value="May" class="item2" >May </option>
<option value="Jun" class="item2" >June </option>
<option value="Jul" class="item2" >July</option>
<option value="Aug" class="item2" >August </option>
<option value="Sep" class="item2" >September</option>
<option value="Oct" class="item2" >October</option>
<option value="Nov" class="item2" >November</option>
<option class="item2" value="Dec">December</option></select></td></tr>
<input id="sub" value="Submit" type="button">
</form>
答案 0 :(得分:1)
如果您查看CGI模块的perldoc,这是包含javascript文件的推荐方法:
print $q->start_html(-title=>'The Riddle of the Sphinx',
-script=>[
{ -type => 'text/javascript',
-src => '/javascript/utilities10.js'
},
{ -type => 'text/javascript',
-src => '/javascript/utilities11.js'
},
{ -type => 'text/jscript',
-src => '/javascript/utilities12.js'
},
{ -type => 'text/ecmascript',
-src => '/javascript/utilities219.js'
}
]
);
$ q将包含一个CGI对象,并且还应该用于构造HTML的其余部分。这应该大大提高其有效的机会。您还需要验证'/test.js'是获取javascript文件的正确URL,并通过检查服务器日志确认它已被提交回浏览器来确认。您还可以在Firebug中查看您的浏览器正在请求并接收它。
最后,虽然CGI在10年或12年前非常受欢迎,但现在有更多现代方法可以在perl中开发Web应用程序。例如,检查cpan是否为CGI::Application和Dancer。使用像Template :: Toolkit这样的东西也可以让你的生活更轻松。