我想用jquery制作网格。我从xml读取数据。当我在Chrome浏览器上运行它时,它可以工作。但是当我在IE上尝试它时会出现此错误。
Grid can not be used in this ('quirks') mode!
我写这段代码:
var datasource_url =“/ Data/XML_Data.xml”;
function makeID(string) {
return string.toLowerCase().replace(/\s/g, "_")
}
$(function() {
$.loadGrid = function() {
$.ajax({
cache: false,
url :datasource_url ,
dataType: "xml",
success: function(data, res) {
var colNames = new Array;
var colIDs = new Array;
var colModel = new Array;
var datas = new Array;
var metadata = $(data).find("metadata").each(function() {
$(this).find('item').each(function() {
var colname = $(this).attr('name');
var colid = makeID($(this).attr('name'));
var coltype = $(this).attr('type');
var collength = $(this).attr('length');
var sorttype = null;
var sortable = false;
switch(coltype) {
case "xs:double":
sorttype = "float";
sortable = true;
break;
case "xs:string":
default:
sorttype = "text";
sortable = true;
break;
}
colNames[colNames.length] = colname;
colIDs[colIDs.length] = colid;
colModel[colModel.length] = {name: colid, index: colid, width: 200, align: "center", sorttype: sorttype, sortable: sortable}
});
});
var options = {
datatype: "local",
height: 500,
colNames: colNames,
colModel: colModel,
multiselect: false,
caption : "Data Grid",
rowNum : 1000,
rownumbers: true
}
$("#datagrid").jqGrid(options);
$(data).find("data").each(function() {
var i=0;
$(this).find('row').each(function() {
var idx = 0;
var rowdata = new Object;
$(this).find('value').each(function() {
var ccolid = colIDs[idx];
if (ccolid) {
rowdata[ccolid] = $(this).text();
}
idx++;
})
$("#datagrid").jqGrid('addRowData', i+1, rowdata)
i++
})
})
}
})
}
$.loadGrid();
/*
$("#btnLoadGrid").click(function() {
//$(this).attr("disabled", "disabled")
$.loadGrid();
})
*/
});
</script>
我该如何解决这个问题。
答案 0 :(得分:10)
我建议你加入
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
在您的XHTML文档的<head>
开头。它将关闭页面的“兼容性视图”。前段时间我在官方jqGrid wiki中找到了所有代码示例中的行(参见here),因为您描述的问题很常见。
答案 1 :(得分:1)
如评论中所述,您需要一个正确的doctype来强制IE退出怪癖模式。看起来您使用的是XHTML doctype,它与HTML5的某些方面不兼容。尝试在HTML网页的第一行使用HTML5文档类型:<!DOCTYPE html>
这是关于不同文档类型及其与HTML5的关系的good article。