数据表jQuery $(文档).ready无法正常工作并被数字替换

时间:2014-12-02 22:39:59

标签: jquery html perl datatables cgi

我正在尝试使用以下代码启动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>};

1 个答案:

答案 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变量。