Это должно быть просто - не получится, что я делаю неправильно! Это очень простой тест (я новичок в PERL и Javascript) - это файл CGI:Вызов функции Javascript из Perl
#! /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's, но моя функция никогда не вызывается. Ошибка на веб-странице говорит «Ожидаемый объект» в строке 15 (линия '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' как новую строку. Проверьте вывод своего скрипта. Я за исключением того, что вы увидите буквальный '\ n' в середине вашего тега'