Avatar billede kapoou Nybegynder
21. juli 2004 - 01:29 Der er 9 kommentarer

Smide createElement ind med createRange

Jeg har følgende som jeg gerne vil have smidt ind i en editor

var newCriteria = document.createElement("input");
newCriteria.setAttribute("type", "text");
newCriteria.setAttribute("name", "Efternavn");
newCriteria.setAttribute("size", 20);

var oSel = oEditor.document.selection.createRange();

Jeg har prøvet med følgende
oSel.pasteHTML(newCriteria)

men det kom det ikke noget ud af andet end den smed [object] ind.
Avatar billede yellow Nybegynder
21. juli 2004 - 03:30 #1
Du kan enten bruge execCommand direkte på din oSel:
oSel.execCommand("InsertInputText",false,"Efternavn");
...men så bliver det lidt rodet at sætte yderligere attributter så som "size" på.

Ellers skal du nok bruge "addElement" metoden på en controlRange: http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/addelement.asp
Avatar billede kapoou Nybegynder
21. juli 2004 - 09:48 #2
Ny har jeg prøvet med følgende

oSel.addElement(newCriteria)

Her får jeg fejlen "object doesn't support this property or method"
Avatar billede yellow Nybegynder
21. juli 2004 - 11:25 #3
addElement virker kun på en controlRange - ikke en textRange

  var newCriteria = document.createElement("input");
  newCriteria.setAttribute("type", "text");
  newCriteria.setAttribute("name", "Efternavn");
  newCriteria.setAttribute("size", 20);
  range = document.body.createControlRange();   
  document.body.insertBefore(newCriteria);
  range.addElement(newCriteria);
Avatar billede kapoou Nybegynder
21. juli 2004 - 11:40 #4
OK. Hvordan får jeg så smidt den ind i min editor. Lige nu smider den bare tekstfeltet ind på selve siden lige udner editoren.
Avatar billede roenving Novice
21. juli 2004 - 15:47 #5
Du laver elementet i det forkerte document !-)

Du skal lave det på contentDocument på editoren ...
Avatar billede kapoou Nybegynder
21. juli 2004 - 19:22 #6
ok. Kan jeg få dig til at specificere hvor det er jeg skal deffinere det ?
Avatar billede roenving Novice
21. juli 2004 - 19:24 #7
Måske nok med:

var newCriteria = oEditor.document.createElement("input");
Avatar billede kapoou Nybegynder
21. juli 2004 - 19:36 #8
så siger den bare invalid argument
Avatar billede kapoou Nybegynder
21. juli 2004 - 19:51 #9
Nu har jeg fået den til at smide det ind i editoren men hvir man kigger i html koden i editore så står der bare <input> der hvor elementet er! Samtidigt smider den elementet ind bagerst lige meget om man har sat cursoren imellem noget tekst!
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