我正在開發一個Dashboard項目,其中的一個組件顯示儀表盤上「縮小」窗口內的摘要表,其中用戶輸入的查詢參數用於生成特定報告。Internet Explorer不兼容性v9和v8 [對象對象]〜其他
代碼在Chrome,Firefox,Internet Explorer 11和10,Microsoft Edge中完美呈現,這裏是正確呈現內容的示例。
不過,我的一些客戶仍在使用Internet Explorer 9和8,我必須用代碼兼容支持他們,並與這些版本,我有問題,如下面的例子顯示的。
所以,可以看到,對於每個用戶輸入對象,由於某種原因[對象的對象]在上面的彙總表被顯示。
用戶輸入變量存儲作爲隱藏標記,例如低於
的過程如下
1)I通過將存儲的輸入變量來填充該表服務器並返回一個帶有結果的JSON對象
$.getJSON('/analyticsdashboard/SysoutSearch/GetSysout?' + $('#hdnParameters').val().slice($('#hdnParameters').val().indexOf('?') + 1)).done(function (result) {
var tbl = $("#tbl");
var tbody = $('#tbl>tbody');
2)然後我'去掉'出變量到特定對象
var jobName = getURLParameterForHtml('jobName', $('#hdnParameters').val());
var startDate = getURLParameterForHtml('startDate', $('#hdnParameters').val());
var startTime = getURLParameterForHtml('startTime', $('#hdnParameters').val());
var endDate = getURLParameterForHtml('endDate', $('#hdnParameters').val());
var endTime = getURLParameterForHtml('endTime', $('#hdnParameters').val());
var lastxDays = getURLParameterForHtml('lastxDays', $('#hdnParameters').val());
var tableName = getURLParameterForHtml('tableName', $('#hdnParameters').val());
var groupName = getURLParameterForHtml('groupName', $('#hdnParameters').val());
var applicationName = getURLParameterForHtml('applicationName', $('#hdnParameters').val());
var memberName = getURLParameterForHtml('memberName', $('#hdnParameters').val());
var owner = getURLParameterForHtml('owner', $('#hdnParameters').val());
var nodeId = getURLParameterForHtml('nodeId', $('#hdnParameters').val());
var endStatus = getURLParameterForHtml('endStatus', $('#hdnParameters').val());
var serverName = getURLParameterForHtml('serverName', $('#hdnParameters').val());
var orderId = getURLParameterForHtml('orderId', $('#hdnParameters').val());
下面
var getUrlParameter = function (sParam, url) {
//debugger;
//window.location.search
var sPageURL = decodeURIComponent(url.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
}的getUrlParameter功能;
3)然後我測試包含數據,即不爲空,並附加它們作爲一行到彙總表體的物體,下面
if (jobName[1]) {
var newRow = "<tr><td></td><td>" + "Job Name" + "</td>" + "<td>" + jobName[1] + "<td></td></tr>" + tbody.append(newRow);
}
一個例子,我已經試過研究這個在這裏SO,例如Internet Explorer Incompatibility - page just shows "[object Object]" WTH?
但一直無法找到解決方案或完全瞭解問題。
我想知道
1)爲什麼在IE9和IE8確實這個問題發生,而不是瀏覽器,火狐,IE 10和IE11,微軟邊緣?
2)我能做些什麼來解決這個問題?
我建議花一些時間調試(IE9提供一個內置的調試器)或至少足夠去建立一個[MCVE]用可運行的現場示例(使用堆棧片斷時,'<>'工具欄按鈕)。 –