2012-07-09 91 views
3

我創建了一個perl腳本,它從服務器獲取運行時數據並顯示在html頁面上。我沒有在那裏使用任何數據庫。javascript內perl腳本

我必須鏈接另一個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文件,以便我可以使用th可以全局變量。 `

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

如果我把這個函數放在perl腳本里面,運行它會提醒我。 – user1445267 2012-07-09 17:06:13

+0

我希望你已經將.js文件導入到你的perl腳本頁面。 – 2012-07-09 17:13:56

+0

是在Perl腳本中執行的JavaScript函數嗎?或者它是否包含在由Perl腳本生成的HTML頁面中? – underscorePez 2012-07-09 19:05:52

回答

1

如果你看的perldoc的CGI模塊,這是推薦的方式,包括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應用程序。例如,查看CGI::ApplicationDancer的cpan。使用類似Template :: Toolkit的東西可能會讓你的生活更輕鬆。