Javascript Firefox引用错误:。。。未定义问题
我正在使用带有服务器端处理的Datatables,我需要向查询中添加一些额外的参数来进行过滤。这是我的设置的样子:Javascript Firefox引用错误:。。。未定义问题,javascript,jquery,firefox,Javascript,Jquery,Firefox,我正在使用带有服务器端处理的Datatables,我需要向查询中添加一些额外的参数来进行过滤。这是我的设置的样子: if($('#example').length) { var oTable = $('#listings').dataTable({ "bProcessing": true, "bServerSide": true, "sAjaxSource": ajax_url+'?action=load_table_data',
if($('#example').length) {
var oTable = $('#listings').dataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": ajax_url+'?action=load_table_data',
"fnServerParams": function ( aoData ) {
aoData.push( { "name": "filters", "value": get_table_filters() } );
}
});
var tableFilterArray = {};
//Setting up and changing the filters, etc...
function get_table_filters() {
return JSON.stringify(tableFilterArray);
}
}
该脚本在Chrome中运行良好,但无法在Firefox中运行,导致以下错误:
ReferenceError:未定义get\u表\u筛选器
下面是一个演示:
我错过了什么 将get_table_过滤器移出if语句
if($('#example').length) {
var oTable = $('#listings').dataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": ajax_url+'?action=load_table_data',
"fnServerParams": function ( aoData ) {
aoData.push( { "name": "filters", "value": get_table_filters() } );
}
});
var tableFilterArray = {};
}
function get_table_filters() {
return JSON.stringify(tableFilterArray);
}
您是否尝试将函数向上移动到oTable上方?@adeneo这样的函数声明不应该在其父函数范围内的任何位置都可用吗?我想我们没有得到这里的所有代码。@dhsto:Firefox对出现在语句块中的函数声明有一种特殊的语法。它的行为更像一个语句,而不是一个声明,因此它不会被提升。这可能是这里的问题,但是passatgt没有提供足够的代码来确定。你已经有了答案,你在if语句中声明函数,它不是真正有效的javascript,但是大多数浏览器都允许它,但是在firefox中没有提升语句,请参阅指向