目標是在CRM中的表單上的Web資源中使用網格控件。我決定使用KoGrid,因爲它可以很容易地綁定到我們已經具備的挖空視圖模型。麻煩的是在CRM環境中使用KoGrid導致IE 9完全停止響應。控制檯中沒有記錄異常或錯誤;唯一的症狀是瀏覽器鎖定。腳本凍結IE,除非在兼容性視圖中
將瀏覽器置於兼容模式可以修復問題,不幸的是,在IE 9中,文檔類型是繼承的,所以我們無法控制Web資源的渲染模式。此外,這真的只是修復症狀,而不是原因。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link href="../css/KoGrid.css" rel="stylesheet" />
<script src="../js/jquery_1.8.3.min.js"></script>
<script src="../js/knockout.js"></script>
<script src="../js/koGrid_2.1.1.js"></script>
<style type="text/css">
.gridStyle {
border: 1px solid rgb(212,212,212);
width: 400px;
height: 300px;
}
</style>
</head>
<body>
<script type="text/javascript">
$(function() {
setTimeout(function() {
debugger;
function mainVm() {
var self = this;
this.myData = ko.observableArray([{ name: "Moroni", age: 50 },
{ name: "Tiancum", age: 43 },
{ name: "Jacob", age: 27 },
{ name: "Nephi", age: 29 },
{ name: "Enos", age: 34 }]);
this.gridOptions = {
canSelectRows: false,
multiSelect: false,
data: self.myData
};
};
ko.applyBindings(new mainVm());
}, 3000);
});
</script>
<div class="gridStyle" data-bind="koGrid: gridOptions"></div>
</body>
</html>
http://jsfiddle.net/wycleffsean/yHrBA/2/
什麼會導致這種現象只有在CRM?它在每個瀏覽器中都能正常工作。渲染模式與腳本行爲有什麼關係?
它不會「停止響應」,但我確實從https://raw.github.com/Knockout-Contrib/KoGrid/master/koGrid-2.1.1.debug獲得了「SEC7112:Script」。 js在IE9中因MIME類型不匹配而被阻止 –
嘗試實際添加作爲單獨的網絡資源並確保其類型爲「JScript」 – wycleffsean
mismatched mime。必須是來自法國的劇本。 – thang