Схожу с ума, пытаясь найти это. Любая помощь будет оценена.
Проблема в том, что этот код ничего не делает в режиме совместимости IE7 / 8/8. Прекрасно работает в Chrome 15.0.8 и FF3.5, а также в Opera 11.60.
Он использует XML-файл для чтения через ajax, а затем помещает его в таблицу. Я попробовал несколько вещей, которые я опишу после кода.
XML:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<issues>
<issue>
<id>12</id>
<emp>44</emp>
<author>1</author>
<comments>Example comments go here</comments>
<issueDate>12/5/2011</issueDate>
<modifiedBy />
<modifiedDate />
<modifiedComments />
<pending>true</pending>
<valid>false</valid>
</issue>
</issues>
JavaScript:
<script type="text/javascript">
$(document).ready(function () {
grabIssues('2011/12/01', '2011/12/13');
});
function grabIssues(startDate, endDate) {
$.ajax({
type: "POST",
url: "Ajax/mtlIssues.aspx",
data: {
startDate: startDate,
endDate: endDate
},
dataType: ($.browser.msie) ? "text" : "xml",
success: function (result) {
createIssues(result);
}
});
}
function createIssues(xml) {
var data = "";
//newIssueArray = [];
$("issue", xml).each(function (id) {
message = $("issue", xml).get(id);
$id = $("id", message).text();
$emp = $("emp", message).text();
$author = $("author", message).text();
$comments = $("comments", message).text();
$issueDate = $("issueDate", message).text();
$pending = $("pending", message).text();
$valid = $("valid", message).text();
//$("#empList").append("<tr><td>" + $emp + "</td><td>" + $issueDate + "</td><td>" + $comments + "</td><td>" + $pending + "</td></tr>");
//newIssueArray.push("<tr><td>" + $emp + "</td><td>" + $issueDate + "</td><td>" + $comments + "</td><td>" + $pending + "</td></tr>");
data += "<tr><td>" + $emp + "</td><td>" + $issueDate + "</td><td>" + $comments + "</td><td>" + $pending + "</td></tr>";
});
//$("#empList").html("");
//for (i in newIssueArray) {
//$("#empListDetails").append(newIssueArray[i]);
//data += newIssueArray[i];
//}
//$("#empList").append("</table>");
$("#empListDetails").html(data);
}
</script>
частичный html
<div id="empList" class="ui-widget">
<table id='empListTable'>
<thead>
<tr><th>Name</th><th>Date</th><th>Comments</th><th>Pending</th></tr>
</thead>
<tbody id='empListDetails'></tbody>
</table>
</div>
Что я пробовал:
Как вы можете заметить по оставленному в комментариях коду, я перепробовал все: от создания массива до использования переменной и непосредственного добавления каждого к странице при ее обнаружении.
- Я также попытался создать пустой div (empList) и создать
всю таблицу в JavaScript и использовать .html (), чтобы вставить его.
Не сработало И не дописывать.
- Я кодировал это несколькими способами, и все они работают в FF / Chrome / Opera. Но я
не могу даже заставить IE7 / 8/8 compatmode даже выдать мне ошибку. Просто
ничего не происходит
- Я обновил JQuery до версии 1.7.1 с версии 1.4.2 и снова попробовал все варианты.
Надеюсь, что это была ошибка, пойманная командой Jquery, а не мой код
непосредственно. Не сработало.
- Также обратите внимание, я удалил «модифицированные» части из JavaScript. Это
был там, но проблема сохранялась до / после.
- Это показывает, что вообще ничего не введено на консоли f12 / dev в IE8.
Там вообще нет текста.
Буду признателен за любую помощь.