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
要求されたよう
、ここでは、ブラウザからのソースコードです...私の悲惨さから私を入れてください。
単一引用符で囲まれた文字列は、改行として '\ n'を認識しません。スクリプトの出力を確認してください。私はあなたの '