Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

Endre tabellinnhold, problemer med crossbrowser kompatibilitet


Anbefalte innlegg

Hei,

 

Har et javascript som kaller php og henter ut noe innhold. Dette funker fint i Opera og FF, men ikke så veldig greit i IE. Fullstendig endring av tabell-innhold ved bruk av .innerHTML ser ikke ut til å være så godt støttet. Finnes det noen alternative måter å gjøre det på? (Har kommentert ut linjen som gir feil)

 

"table + database + 'table'" er for øvrig en id til et <table>-element.

 

function Page(page, table, database) {

var xmlHttp;
var time = new Date();

try {
	xmlHttp = new XMLHttpRequest();
} catch (e) {
	try {
		xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
	} catch (e) {
		try {
			xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
		} catch (e) {
			alert('Your browser does not support AJAX!');
		}
	}
}

xmlHttp.onreadystatechange = function() {
	if (xmlHttp.readyState == 4) {
		document.getElementById(table + database + 'table').innerHTML = xmlHttp.responseText; // <-- Fullstendig endring av tabell-innhold!
	}
}

document.getElementById(table + database + 'edit').innerHTML = '<p><em>No entry chosen.</em></p>';
document.getElementById(table + database + 'table').caption.innerHTML = '<em>Loading page, please wait ..</em>';

xmlHttp.open('GET', 'mysql/table.php?table=' + table + '&database=' + database + '&page=' + page + '&time=' + time.getTime(), true);
xmlHttp.send(null);

}

 

- Jonas

Endret av Jonas
Lenke til kommentar
Videoannonse
Annonse

Du burde oppgi hva du får returnert og HTML i bakgrunnen. ( Hva er document.getElementById(table + database + 'edit')? )

 

Når det gjelder tabeller fra javascript i IE er det et par issues. Om jeg husker rett er den største at du må ha et tbody element i tabellen.

 

MSDN har forresten god dokumentasjon på dette:

http://msdn2.microsoft.com/en-us/library/m...998(VS.85).aspx

Endret av JohndoeMAKT
Lenke til kommentar

Ja, du har nok rett, det kom dårlig frem. Her er et mer isolert eksempel. Følgende kode vil ikke fungere i IE.

 

<table id="mintabell">
 <tr>
   <td>Column 1</td>
   <td>Column 2</td>
   <td>Column 3</td>
   <td>Column 4</td>
   <td>Column 5</td>
 </tr>
</table>

 

document.getElementById('mintabell').innerHTML = '  <tr>
<td>Kolonne 1</td>
<td>Kolonne 2</td>
<td>Kolonne 3</td>
<td>Kolonne 4</td>
<td>Kolonne 5</td>
 </tr>';

 

.. resultat vil i Opera og FF bli følgende.

 

<table id="mintabell">
<tr>
   <td>Kolonne 1</td>
   <td>Kolonne 2</td>
   <td>Kolonne 3</td>
   <td>Kolonne 4</td>
   <td>Kolonne 5</td>
 </tr>
</table>

Endret av Jonas
Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...