Avatar billede morw Nybegynder
06. november 2001 - 19:42 Der er 6 kommentarer og
2 løsninger

Opdater indhold via insertAdjacentHTML

Jeg har 2 rammer i et frameset.

Jeg har et vindue der står og refresh\'er for at smide indhold over i det vindue der skal vise teksten.

Jeg har dog lidt problemer med at få den til at indsætte en row i en eksisterende tabel.

Jeg kan godt sætte en hel tabel ind eler blot en stump tekst.

Jeg bruger 2 funktioner.

Den der modtager og smider over til vis-vinduet:

<script language=\"JavaScript\"><!--

function overfoer() {
    var minStreng = \'<tr><td><a href=\"#\" class=\"db\">Testperson</a><br>Hejsa</td></tr>\';
    parent.chatvis.writeTekst(minStreng);
}
// -->
</script>

Så er der så en funktion i vis vinduet der skulle opdatere min div:


<script language=\"JavaScript\"><!--

function writeTekst(str) {
document.all[\'tekstLag\'].insertAdjacentHTML(\"afterBegin\", str);
}
// -->
</script>


Den skulle så sætte den nye række ind i min tabel:

<table>
<td><td>Normal række</td></tr>
<div ID=\"tekstLag\"></div>
</table>

Det er ligesom den ikke forstår at den nye row er en del af min table.


Avatar billede olebole Juniormester
06. november 2001 - 19:52 #1
<ole>
Der er vist endnu færre, der forstå, hvad i alverden det div laver der...?!?!?! Det kan aldrig stå udenfor en celle, hvis det skal være i en tabel.

Du skal have fat i tabellen - ikke div\'et ...det skal helt fyres! - og indsætte din HTML i:
  document.all[\'dinTabelsId\'].insertAdjacentHTML(\"BeforeEnd\", str);
/mvh
</bole>
Avatar billede morw Nybegynder
06. november 2001 - 20:21 #2
Det har jeg prøvet men så siger den invalid taget element i denne linie:

document.all[\'tekstLag\'].insertAdjacentHTML(\"afterBegin\", str);

Og men tabel ser sådan ud:

<table border=\"0\" width=\"95%\" cellpadding=\"3\" ID=\"tekstLag\">

Jeg forstår intet
Avatar billede olebole Juniormester
06. november 2001 - 20:30 #3
Så prøv noget:

afterThisTR = document.getElementById(\"tekstLag\").children[0];
newTR = document.createElement(\"TR\");
thisTR = afterThisTR.insertAdjacentElement(\"AfterEnd\",newTR);
newTD = document.createElement(\"TD\");
thisTD = thisTR.insertAdjacentElement(\"AfterBegin\",newTD);

/mvh
Avatar billede olebole Juniormester
06. november 2001 - 20:31 #4
...og første linie kan selvfølgelig også se sådan ud:
afterThisTR = document.all[\"tekstLag\"].children[0];
Avatar billede morw Nybegynder
06. november 2001 - 20:37 #5
Men hvor skal

document.all[\'tekstLag\'].insertAdjacentHTML(\"afterBegin\", str);

så stå? den skal jo indsætte teksten
Avatar billede morw Nybegynder
06. november 2001 - 20:45 #6
Jeg har lige prøve noget ander der virker, men hvordan Kan jeg få den til at skrive i toppen i stedet?

function writeTekst(str) {

  // Insert two rows.
  var oRow=oTable.insertRow(oTable.rows.length);
 
  // Retrieve the rows collection for the table.
  var aRows=oTable.rows;
 
  // Retrieve the cells collection for the first row.
  var aCells=oRow.cells;
 
  // Insert two cells into the first row.
  var oCell1=aRows(oRow.rowIndex).insertCell(aCells.length);
 

  // Add regular HTML values
  oCell1.innerHTML= str;
 
 
  }
Avatar billede morw Nybegynder
06. november 2001 - 20:56 #7
ja, det var jo næsten for nemt:

var oRow=oTable.insertRow(0);
Avatar billede morw Nybegynder
06. november 2001 - 20:57 #8
Du får lige 30 point, da jeg jo endte op med en anden løsning
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester