2012-01-06 2 views
0

Это должно быть просто - не получится, что я делаю неправильно! Это очень простой тест (я новичок в 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 
+0

Строки с одним кавычком не понимают '\ n' как новую строку. Проверьте вывод своего скрипта. Я за исключением того, что вы увидите буквальный '\ n' в середине вашего тега'

Смежные вопросы