[JS] onkeypress contenteditable Ifr srcElement altijd <BODY>

Pagina: 1
Acties:

  • Dope-E
  • Registratie: Januari 2001
  • Laatst online: 11-07 12:42

Dope-E

The one and only Dope

Topicstarter
Ik zit met een lastig probleempje. Ik ben dus al geruime tijd bezig met een wysiwyg editor.

Ik wil als er op een toets gedrukt wordt binnen de Iframe het event.srcElement opvragen. Dus wanneer er in een table iets getypt wordt, hij dan <TD> geeft...
Met onclick werkt het perfect, hij geeft dan als de cursor binnen een cell valt netjes <TD> terug.

Waarom geeft ie altijd <BODY> bij onkeypress/onkeydown/onkeyup??? En hoe dit op te lossen, als dat al kan!

twitter.com/curly_sanders


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Hij geeft altijd het element dat je aan het editen bent. In dit geval is je body contenteditable en ben je die dus aan het editen. Je zult dus altijd body terugkrijgen.

Wat je wel kunt doen is de positie van de cursor bekijken via de ranges en zo het element achterhalen. Dat is vrij simpel (zie voorbeelden op msdn.microsoft.com of zoek eens op GoT)

  • Dope-E
  • Registratie: Januari 2001
  • Laatst online: 11-07 12:42

Dope-E

The one and only Dope

Topicstarter
Dat heb ik al eerder geprobeerd, met ranges. Het nadeel daarvan is dat je niet een <TD> kan achterhalen, wanneer je met de cursor in een lege <TD> staat, dus <TD></TD>.

twitter.com/curly_sanders


  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Kun je op het moment van klikken niet even de contenteditable property uitzetten? Was even een gedachtengang...

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Dope-E schreef op 06 juli 2003 @ 19:58:

Dat heb ik al eerder geprobeerd, met ranges. Het nadeel daarvan is dat je niet een <TD> kan achterhalen, wanneer je met de cursor in een lege <TD> staat, dus <TD></TD>.
Niet :? Een range heeft geen parentElement oid? :P

http://msdn.microsoft.com...thods/parentelement_1.asp

Ik gaf toch de link naar msdn.microsoft.com of ben ik nu gek :?

edit: een lege TD... aha :P (* Bosmonster moet beter lezen :P)

[ Voor 31% gewijzigd door Bosmonster op 06-07-2003 20:30 ]


  • Dope-E
  • Registratie: Januari 2001
  • Laatst online: 11-07 12:42

Dope-E

The one and only Dope

Topicstarter
André schreef op 06 July 2003 @ 20:05:
Kun je op het moment van klikken niet even de contenteditable property uitzetten? Was even een gedachtengang...
Dan ben je ook meteen de cursorpositie kwijt... Gaat niet werken!

twitter.com/curly_sanders


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Eens geprobeerd, maar kheb dus nergens last van.. probeer de volgende code maar eens:


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
<html>
<head>
<script type="text/javascript">

function showParent() {
    var tr = document.selection.createRange();
    document.getElementById('theTagName').innerHTML = tr.parentElement().tagName;
}

</script>
</head>
<body onkeyup="showParent()">
<div id="theTagName" style="border:1px solid #000000;margin-bottom:10px;">&nbsp;</div>
<div contenteditable style="border:1px solid #000000;height:500px;">
<p>
    bladibla<br>
    <strong>blablabla</strong><br>
</p>
<table border="1">
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
</table>
<table border="0">
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
</table>
<p>
    bladibla<br>
    <strong>blablabla</strong><br>
</p>
</div>
</body>
</html>

[ Voor 13% gewijzigd door Bosmonster op 06-07-2003 20:56 ]


  • Dope-E
  • Registratie: Januari 2001
  • Laatst online: 11-07 12:42

Dope-E

The one and only Dope

Topicstarter
thx Bosmonster voor t uittesten! Je hebt gelijk dat werkt toch wel...

Ik snap niet dat toen ik t eerst probeerde niet werkte, maar goed dit werkt perfect :)

twitter.com/curly_sanders

Pagina: 1