Du kan lave en generel onControlSelect-handler for hele dokumentet, dvs. en handler, der gennemløbes hver gang et element controlSelect'es i editoren (controlSelect er markering, hvor der kommer "håndtag" på elementer, f.eks. billeder, div'er og tabeller).
I handleren kan du checke, om event.srcElement.tagName = 'TABLE' og i så fald kalde din funktion. Altså noget à la det her (ikke testet):
<script> function doCtrlSel() { var elm = event.srcElement; if (elm.tagName.toUpperCase() == 'TABLE') showTableProperties(elm); }
function showTableProperties(elm) { alert(elm.outerHTML); } </script>
Ja, det vil jeg tro - men jeg ved ikke præcist hvordan. Problemet med at bruge en iframe er, at man ikke bare kan sætte event-handlere på iframen, men skal have fat i document i iframen. Her er et par bud - håber et af dem virker:
function loadEditor(){ editbox.document.designMode="On"; editbox.document.body.oncontrolselect = doCtrlSel; editbox.focus; }
eller:
function loadEditor(){ editbox.document.designMode="On"; editbox.document.body.oncontrolselect = parent.doCtrlSel; editbox.focus; }
Beklager de mange "skud i tågen", men alle de editorer, jeg har lavet, har været baseret på contentEditable div'er, så jeg kender ikke lige de rigtige metoder til en iframe-baseret editor... der er tilsyneladende en hel del forskelle :)
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.