我正在尝试使用以下代码启动DataTables实例...
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
$('#example').DataTable();
} );
</script>
但是当我通过网络访问HTML时,浏览器会显示“未捕获的SyntaxError:意外的数字”错误,这就是源从浏览器看到的内容......
<script type="text/javascript" language="javascript" class="init">
0 11 4 3 2 1 0document).ready(function() {
0 11 4 3 2 1 0'#example').DataTable();
} );
</script>
正如您所看到的,某些说明已被数字“0 11 4 3 2 1”取代,我不知道是什么导致它。
jQuery是来自Google的src和来自他们CDN的DataTables javascript。
我正在使用CGI从Perl脚本创建HTML,打印Content-type:text / html标头并使用不同的!DOCTYPE ......但仍然没有。编辑代码不会显示隐藏的字符。
非常感谢您的帮助。
最佳, 即
编辑:这是创建HTML的Perl代码...
use Switch;
use CGI qw/:standard/;
use CGI::Carp 'fatalsToBrowser';
print "Content-type:text/html\r\n\r\n";
print qq{<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
<link rel="stylesheet" type="text/css" href="css/jquery.dataTables.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script language="JavaScript" type="text/javascript" src="js/jquery.dataTables.min.js"></script>
<script type="text/javascript" language="javascript">
/* <![CDATA[ */
$(document).ready(function() {
$('#example').DataTable();
} );
/* ]]> */
</script>
</head>};
答案 0 :(得分:4)
问题是qq
插入变量,而您的HTML字符串包含特殊变量$(
:
$(document).ready(function() {
$('#example').DataTable();
根据perldoc perlvar
:
<强> $(强>
这个过程真正的gid。如果您在同时支持多个组成员身份的计算机上,请提供以空格分隔的列表 您所在的群组。第一个号码是
getgid()
返回的号码,后续号码是getgroups()
,其中一个号码可能与第一个号码相同 号。
您的字符串中每次出现的$(
都会替换为您的网络服务器用户所属的GID列表。
您可以在命令行中看到:
perl -wE 'say qq{$(document).ready(function()}'
输出
3000 3000document).ready(function()
在我的系统上。
使用q
代替qq
,以避免将内容插入为Perl变量。