2012-01-06 56 views
0

これは簡単なはずです - 私が間違っていることを取得しないでください!これは非常に基本的なテスト(私はPerlやJavaScriptに新たなんだ)である - これは、CGIファイルです:PerlのJavascript関数を呼び出す

#! /usr/local/bin/perl 

print "Content-type: text/html\n\n"; 
print "<html>\n" ; 
print "<head>Hello\n"; 
print '<script type="text/javascript" language="javascript" src="wibble.js">\n'; 
print "</script>\n"; 
print "</head>\n"; 

print "<body>\n"; 

$fred = "Fred"; 
$numb = 7; 

print <<TEST; 

<p>Starting...</p> 
<p><script type="text/javascript" language="javascript"> 
theText = "$fred"; 
theNum = "$numb"; 
document.writeln("Direct write..."); 
document.writeln("Number is: " + theNum); 
document.writeln("Text is: " + theText); 

testWrite(theNum, theText); 

</script></p> 

<p>...ending JS</p> 

TEST 

とwibble.js中:私のブラウザで

function testWrite(num1, txt1) 
{ 
    document.writeln("In testWrite..."); 
    document.writeln("Number is: " + num1); 
    document.writeln("Text is: " + txt1); 
} 

、私が手writelnの最初のセットですが、私の関数は呼び出されません。ウェブページ上のエラーは、15行目の 'Object expected'と表示されます('print <<TEST'行)。

私はsrc要素に正しいパスがないと思っていますが、考えられるすべての組み合わせ( '。'、 './'、フルパスなど)を試してみました。 jsファイルはCGIファイルと同じディレクトリにあります。

(私は実際には、パラメータを持たない関数呼び出しを持っていましたが、TheNumとtheTextがグローバルで、まだ動作します(これはこのテストプログラムの元の点です)。

<html> 
<head><script type="text/javascript" language="javascript" src="wibble.js"></script> 
</head> 
<body> 

<p>Starting...</p> 
<p><script type="text/javascript" language="javascript"> 
theText = "Fred"; 
theNum = "7"; 
document.writeln("Direct write..."); 
document.writeln("Number is: " + theNum); 
document.writeln("Text is: " + theText); 

testWrite(theNum, theText); 

</script></p> 

<p>...ending JS</p> 

</body> 
</html> 

、これはウェブページ上で実際に出力されます::

Starting... 

Direct write... Number is: 7 Text is: Fred 

...ending JS 

要求されたよう

、ここでは、ブラウザからのソースコードです...私の悲惨さから私を入れてください。

+0

単一引用符で囲まれた文字列は、改行として '\ n'を認識しません。スクリプトの出力を確認してください。私はあなたの '

関連する問題