Hallo liebe tutorials.de-Community,
ich versuche eine DataTable per XML zu befüllen. Das klappt auch im FireFox wunderbar, nur im IE nicht (getestet mit IE 11 unter Win8 und IE8 unter Win7).
Ich verstehe einfach nicht wieso, denn eine im Aufbau ähnliche XML-Funktion habe ich bereits in anderen Projekten verwendet und dort lief es auch im IE perfekt. Bin gerade wirklich etwas ratlos und hoffe, dass mir jemand einen Tipp geben kann.
Ich nutze jQuery 1.10.2 und DataTables 1.10.0.
Hier mein JavaScript-Code:
Und mein HTML-Code:
Hier die XML-Funktion, die im IE perfekt lief:
EDIT:
Ich habe herausgefunden, dass aus welchen Gründen auch immer in diesem Fall ".find" im IE nicht geht. Habe das durch "console.log(...)" Befehle getestet die ich einmal direkt nach "$.get("list.xml", function(XMLmediaArray){" und einmal nach "$(XMLmediaArray).find("row").each(function(){" eingefügt habe. Der erste "console.log(...)" Befehl kam in der Konsole an der zweite nicht. Ergo: ".find" mag IE nicht aber dafür ".filter". Es gibt dann aber keine Daten in der Website aus - nur in der Konsole. Die Tabellenzellen werden zwar angelegt aber ohne Inhalt. UND ganz wichtig: Mit ".filter" geht es im Firefox nicht mehr.
ich versuche eine DataTable per XML zu befüllen. Das klappt auch im FireFox wunderbar, nur im IE nicht (getestet mit IE 11 unter Win8 und IE8 unter Win7).
Ich verstehe einfach nicht wieso, denn eine im Aufbau ähnliche XML-Funktion habe ich bereits in anderen Projekten verwendet und dort lief es auch im IE perfekt. Bin gerade wirklich etwas ratlos und hoffe, dass mir jemand einen Tipp geben kann.
Ich nutze jQuery 1.10.2 und DataTables 1.10.0.
Hier mein JavaScript-Code:
Code:
$(document).ready(function() {
var thisTable;
thisTable = $('table.tabs_datatable').dataTable();
$.get("list.xml", function(XMLmediaArray){
$(XMLmediaArray).find("row").each(function(){
var $sop_row = $(this);
var sorter = $sop_row.find("sorter").text();
var ProcessArea = $sop_row.find("processarea").text();
var PACode = $sop_row.find("pacode").text();
var DocumentID = $sop_row.find("documentid").text();
var Version = $sop_row.find("version").text();
var DocumentType = $sop_row.find("documenttype").text();
var DocumentTitle = $sop_row.find("documenttitle").text();
var ID = $sop_row.find("id").text();
var Deeplink_text = $sop_row.find("deeplink").text();
var EffectiveDate = $sop_row.find("effectivedate").text();
var deeplink = "";
if(Deeplink_text.indexOf("http://") != -1){
deeplink = "<a href='"+Deeplink_text+"' target='_blank'>"+Deeplink_text+"</a>";
}else{
deeplink = Deeplink_text;
}
var addData = [];
addData.push(sorter);
addData.push(ProcessArea);
addData.push(PACode);
addData.push(DocumentID);
addData.push(Version);
addData.push(DocumentType);
addData.push(DocumentTitle);
addData.push(ID);
addData.push(deeplink);
addData.push(EffectiveDate);
thisTable.fnAddData(addData);
});
});
//---------------------------
});//-END- $(document).ready
Und mein HTML-Code:
HTML:
<table class="tabs_datatable" cellpadding="0" cellspacing="0" width="1100">
<thead>
<tr>
<th>Sorter</th>
<th>Process Area</th>
<th>PA Code</th>
<th>Document ID</th>
<th>Version</th>
<th>Document Type</th>
<th>Document Title</th>
<th>ID</th>
<th>Deeplink</th>
<th>Effective Date</th>
</tr>
</thead>
</table>
Hier die XML-Funktion, die im IE perfekt lief:
Code:
$.get("kontaktdaten.xml", function(XMLmediaArray){
$(XMLmediaArray).find("contact").each(function(){
var $contacts = $(this);
var name = $contacts.find("name").text();
var email = $contacts.find("email").text();
$('#col_content .col_content_inner '
+'.accordion table tbody td a span:contains("'+name+'")').closest('a').attr('href', 'mailto:'+email);
});
});
EDIT:
Ich habe herausgefunden, dass aus welchen Gründen auch immer in diesem Fall ".find" im IE nicht geht. Habe das durch "console.log(...)" Befehle getestet die ich einmal direkt nach "$.get("list.xml", function(XMLmediaArray){" und einmal nach "$(XMLmediaArray).find("row").each(function(){" eingefügt habe. Der erste "console.log(...)" Befehl kam in der Konsole an der zweite nicht. Ergo: ".find" mag IE nicht aber dafür ".filter". Es gibt dann aber keine Daten in der Website aus - nur in der Konsole. Die Tabellenzellen werden zwar angelegt aber ohne Inhalt. UND ganz wichtig: Mit ".filter" geht es im Firefox nicht mehr.
Zuletzt bearbeitet: