客戶抱怨網頁呈現不正確。資料出不來。
看了一下,客戶使用的是 IE8 on Windows 7。天啊!算很新的系統,但就是不肯更新 IE 版本。
問題在 Knockoutjs
我用IE 10 按F12 開發者工具,檢查一下錯誤的 javascript
SCRIPT5022: Unable to parse bindings.
Message: SyntaxError: Expected identifier, string or number;
Bindings value: text: CompanyName, attr: { for: 'c' + TaxNo()}
binding 的 html 如下
<label data-bind="attr:{for: 'r' + ReportHeaderId()}, text: ReportName"></label>
原因
舊版本IE 會將 for: 當成 javascript 的保留字,想把它當成 javascript 來跑,因而錯誤。
解法
加上單引號,變成字串即可
<label data-bind="attr:{'for': 'r' + ReportHeaderId()}, text: ReportName"></label>
沒有留言:
張貼留言