Toon posts:

[Javascript] div creeeren na onload.

Pagina: 1
Acties:

Onderwerpen


  • Bobby Rifler
  • Registratie: April 2009
  • Laatst online: 19-05 16:48
Ik heb, in een htmlpagina, javascript code die wordt aangeroepen met een functie. Deze functie roept weer met window.onload een andere functie aan. Het idee is dat de javascript aan de hand van de locatie van een div zijn positie bepaalt op de pagina. Het is natuurlijk makkelijk om een div in de html te plaatsen, maar door omstandigheden moet de div gecreëerd worden in de javascript.
Het probleem nu is dat de div gemaakt wordt na de onload(dit kan niet anders), wat betekent dat de gehele pagina overschreven wordt met mijn document.write.

Ik vraag mij dus af of iemand een manier weet om de div te plaatsen zonder een document.write. Appendchild heb ik al geprobeerd, maar dan wordt het onderaan de pagina toegevoegd. Er is geen parentdiv.

  • _naranya
  • Registratie: Oktober 2010
  • Laatst online: 12:46
Zoiets?

JavaScript:
1
2
3
var parent_div = document.getElementById('parent_div');
var new_div = document.createElement('div');
parent_div.appendChild(new_div);

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01-06 22:36

MueR

Moderator Devschuur®

is niet lief

Je kon niets vinden tussen de 21 miljoen resultaten?

Anyone who gets in between me and my morning coffee should be insecure.
Breng nu uw applicatie naar de kloot. Dat is veel beter! Nu samen met klootopslag. Voor maar €9,95. Doei doei!


  • Bobby Rifler
  • Registratie: April 2009
  • Laatst online: 19-05 16:48
_naranya schreef op donderdag 23 juni 2011 @ 14:15:
Zoiets?

JavaScript:
1
2
3
var parent_div = document.getElementById('parent_div');
var new_div = document.createElement('div');
parent_div.appendChild(new_div);
Er is geen parentdiv. Dat is nou net het probleem.

  • Bobby Rifler
  • Registratie: April 2009
  • Laatst online: 19-05 16:48
was het maar zo simpel. :P

  • _naranya
  • Registratie: Oktober 2010
  • Laatst online: 12:46
Je wil dus je div absoluut positioneren?
JavaScript:
1
new_div.setAttribute("style", "position:absolute; left:0; top:0;");

  • McRubz
  • Registratie: Januari 2004
  • Niet online
Bobby Rifler schreef op donderdag 23 juni 2011 @ 14:21:
[...]

Er is geen parentdiv. Dat is nou net het probleem.
Als je stukje javascript de positie van het te injecteren div-je moet bepalen na het laden van de pagina moet er toch wel een parent-element zijn? Gebruik ook geen document.write, maar de functies die hierboven al gegeven worden.

  • nika
  • Registratie: Oktober 2003
  • Laatst online: 21-05-2021
Stel je vraag nou eens duidelijk, want blijkbaar wil je iets anders dan mensen hier antwoorden.

Verder kun je natuurlijk ook insertBefore of insertAfter doen als je de DIV geen child wil maken.

  • Bobby Rifler
  • Registratie: April 2009
  • Laatst online: 19-05 16:48
Oke maar het komt er dus op neer dat je niks kan plaatsen zonder er een parent is.

  • 418O2
  • Registratie: November 2001
  • Laatst online: 23-05 12:27
jQuery
JavaScript:
1
2
3
4
var div = $("<div />").attr("id", "testDivje");
div.insertAfter($("#header"));
//of
div.appendTo("body");


je moet hem toch wel érgens in/achter/voor kwijt willen lijkt me

Een versimpeld snippet van je code/html zou wel handig zijn.

[Voor 13% gewijzigd door 418O2 op 23-06-2011 14:46]


  • _naranya
  • Registratie: Oktober 2010
  • Laatst online: 12:46
Als jij een element on-the-fly aanmaakt zal je browser toch moeten weten waar hij deze neer moet zetten ja, zie Wikipedia: Document Object Model

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 13-01 10:59
Het idee is dat de javascript aan de hand van de locatie van een div zijn positie bepaalt op de pagina.
Dan maakt het toch niet uit dat ie in de DOM onderaan de pagina komt? Je moet alleen daarna even hem op zn plek zetten relatief aan die andere div.

Optioneel kun je hem in die div zelf zetten en van daaruit relatief positioneren natuurlijk.

  • Bobby Rifler
  • Registratie: April 2009
  • Laatst online: 19-05 16:48
Bedankt voor het meedenken. Dit bevestigd onze conclusie over het probleem. Slotje mag.

  • Caelorum
  • Registratie: April 2005
  • Nu online
Bobby Rifler schreef op donderdag 23 juni 2011 @ 14:49:
Bedankt voor het meedenken. Dit bevestigd onze conclusie over het probleem. Slotje mag.
En je conclusie is ook goed? Misschien handig om hem even hier neer te zetten?

  • RobIII
  • Registratie: December 2001
  • Laatst online: 11:57

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Bobby Rifler schreef op donderdag 23 juni 2011 @ 14:49:
Bedankt voor het meedenken. Dit bevestigd onze conclusie over het probleem. Slotje mag.
Een slotje is niet nodig op een topic als je je oplossing hebt. Zie daarvoor ook onze faq betreffende topiceinde.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 30-03 14:15

OkkE

CSS influencer :+

Bobby Rifler schreef op donderdag 23 juni 2011 @ 14:42:
Oke maar het komt er dus op neer dat je niks kan plaatsen zonder er een parent is.
Er is altijd een parent, namelijk <body> of <html>.

Maar aangezien je de div met Javascript toevoegd (en ik denk ook absoluut wil positioneren?) maakt het niks uit waar in de DOM (broncode) dit element staat. Je kunt dan ook met Javascript de top, bottom, left & right zetten.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Anoniem: 96523

Als ik de TS goed begrijp (gezien de vage vraag en antwoorden) is het de bedoeling dat het script een div plaatst op de locatie van het script, maar zonder document.write...

De reden waarom document.write niet kan/mag is mij overigens onduidelijk, omdat deze gewoon iets print en niets overschrijft.

Maar je kunt het volgende doen:
- laad de volledige pagina
- voer script uit
- zoek naar locatie van script (adhv script src)
- plaats daarvoor/-achter de div

Het is een beetje overkill (doc.write werkt hetzelfde, maar dan in 1 regel), maar het zou je limitatie oplossen.

  • 418O2
  • Registratie: November 2001
  • Laatst online: 23-05 12:27
of ram het in een placeholder-div

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 30-03 14:15

OkkE

CSS influencer :+

Zonder meer informatie is het sowieso onmogelijk om goed advies te geven over wat de beste oplossing is. Als we een testcase hebben, kunnen we misschien nog gericht vragen stellen en verder helpen.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee