[dhtml] <br> of <p> in contenteditable <div>

Pagina: 1
Acties:

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 09:36

Pelle

🚴‍♂️

Topicstarter
Ik zat me net een geniaal idee te bedenken voor een pagina die ik wel wil (her)bouwen, maar niet wil onderhouden, ondanks dat ik de beheerder van die site ben.

Ik ga straks een aantal mensen bepaalde rechten geven tot het editen van bepaalde pagina's, en het leek me wel leuk om dat eens met de contenteditable functies van IE te gaan doen.

Ik heb er nog nooit mee gewerkt, maar wat ik ervan gezien heb is erg cool. Ben dus een beetje gaan prutsen, maar nu zit ik vast.

Zie onderstaande code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <style>
      #blob {
        border: 1px solid #000066;
        font-family: verdana;
        padding: 10px;
        width: 500px;
        overflow: auto;
      }
      a {
        color: #00ff00;
      }
    </style>
    <script language="javascript" type="text/javascript">
    <!--
    function boldred() {
      range = document.getElementById("blob").document.selection.createRange();   
      range.execCommand("Bold");
      range.execCommand("ForeColor", false, "red");
    }
    function linkje() {
      range = document.getElementById("blob").document.selection.createRange();   
      range.execCommand("CreateLink");
    }
    function source() {
      alert(document.getElementById('blob').innerHTML);
    }
    function del() {
      range = document.getElementById("blob").document.selection.createRange();   
      range.execCommand("RemoveFormat");
    }
    //-->   
    </script>
</head>

<body>

<div id="blob" contenteditable>
    sjako<br>
    dus
</div>

<br>
<br>
<button onClick="boldred()">bold red</button> &nbsp;
<button onClick="linkje()">linkje</button> &nbsp;
<button onClick="del()">meuk weghalen</button> &nbsp;
<button onClick="source()">alert source</button> &nbsp;

</body>
</html>

Ik wil als ik in die <div> m'n tekst aan het tikken ben, en ik op [enter] druk, hij ook daadwerkelijk naar de volgende regel gaat, of desnoods een nieuwe <p> begint.
Maar dat lukt dus niet. Wat doe ik fout?

Oh en nog iets, nu ik toch bezig ben :+
Wat ik van MSDN begreep is dat de functie execCommand("RemoveFormat") alle zooi die gegenereerd is rondom de tekst-selectie, wordt weggehaald. Maar die doet het ook nie :(
Welke guru helpt mij uit de brand?

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 29-05-2025

RRX

@life-

Op dinsdag 05 februari 2002 01:21 schreef Pelle het volgende:
[..]
Ik wil als ik in die <div> m'n tekst aan het tikken ben, en ik op [enter] druk, hij ook daadwerkelijk naar de volgende regel gaat, of desnoods een nieuwe <p> begint.
Maar dat lukt dus niet. Wat doe ik fout?
bij mij doet ie dat ook :? IE 6.0.2600.0000

mijn T.net systeemspecspagina


  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

* oh,when? had nog een voorbeeldje liggen

:)

en aangepast aan jouw dingetje

"You're only as good, as what you did last week."


Verwijderd

Grootste nadeel van execcommand is dat je alle andere tags en elementen moet afschermen van execcommand. Dit kan je doen met unselectable="on".

Vandaar dat ik ook alle menuitems en alles wat buiten het edit vak valt in unselectable="on" zet. Je krijgt dan namelijk ook niet het probleem bij ExecCommand(New_Image); welke vervolgens buiten het edit vak maar eventjes een afbeelding neerkwakt. :)

Kortom ExecCommand is een heel secuur werkje om het 100% werkend te krijgen :)

PS. Had ik ook in die versie van mij gedaan die je hebt gekregen van me ;)

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Simpele htmleditor. Who needs Homesite anyway?
* 2

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 09:36

Pelle

🚴‍♂️

Topicstarter
Thnks for the tips doeds. Maar ik ben er nu achter wat het probleem was. Beetje erg raar, maar preview ik mijn werk in Homesite, dan werkt het allemaal, behalve de break genereren door op [enter] te drukken. Preview ik gewoon in IE, dan werkt het wel.

'Homesite, who needs it anyway' krijgt zo wel een hele aparte betekenis ;)

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Op dinsdag 05 februari 2002 14:29 schreef Pelle het volgende:
Thnks for the tips doeds. Maar ik ben er nu achter wat het probleem was. Beetje erg raar, maar preview ik mijn werk in Homesite, dan werkt het allemaal, behalve de break genereren door op [enter] te drukken. Preview ik gewoon in IE, dan werkt het wel.

'Homesite, who needs it anyway' krijgt zo wel een hele aparte betekenis ;)
Ja ik merk ook dat hij het af en toe wel en af en toe niet doet. Vaagheid (lees:microsoft).
Op dinsdag 05 februari 2002 08:46 schreef Gordijnstok het volgende:
Grootste nadeel van execcommand is dat je alle andere tags en elementen moet afschermen van execcommand. Dit kan je doen met unselectable="on".

Vandaar dat ik ook alle menuitems en alles wat buiten het edit vak valt in unselectable="on" zet. Je krijgt dan namelijk ook niet het probleem bij ExecCommand(New_Image); welke vervolgens buiten het edit vak maar eventjes een afbeelding neerkwakt. :)

Kortom ExecCommand is een heel secuur werkje om het 100% werkend te krijgen :)

PS. Had ik ook in die versie van mij gedaan die je hebt gekregen van me ;)
Ik liep hier idd een beetje mee te kutten, unselectable werkte namelijk niet bij mij om de 1||andere reden. Maar deze werken wel:
code:
1
2
ondragstart="window.event.returnValue=false;" 
onselectstart="window.event.returnValue=false;"

Dus in de context wordt het zoiets:


<div ID="textEdit">
<span ondragstart="window.event.returnValue=false;" onselectstart="window.event.returnValue=false;">
[img]"i/bold.gif"[/img]
[img]"i/italic.gif"[/img]
[img]"i/under.gif"[/img]
[img]"i/link.gif"[/img]
[img]"i/bullist.gif"[/img]
</span>
<div ID="textField" contenteditable>
lu de lu bloe bla die we maken domo vla
</div>
</div>

Verwijderd

Dat komt omdat je nu geen scheiding hebt tussen contenteditable en plain simple commando's :) Anders had het wel gewerkt.

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Op dinsdag 05 februari 2002 16:01 schreef Gordijnstok het volgende:
Dat komt omdat je nu geen scheiding hebt tussen contenteditable en plain simple commando's :) Anders had het wel gewerkt.
hur?

leg eens uit?
Pagina: 1