[dHTML] execCommand of eigen tags

Pagina: 1
Acties:

  • mEdnass
  • Registratie: November 2001
  • Laatst online: 04-12-2021
Hi!

Ik ben bezig een gedeelte van mijn CMS te upgraden. Ik wil van het systeem van die UBB-style tags af, omdat dit vermoedelijk voor de gebruikers toch te moeilijk is (ja, echt..... :X )
Nu ben ik een beetje aan het friemelen met DHTML en het contenteditable gebeuren icm de functie execCommand.

parent.workspace.document.execCommand('Bold','','');
--Dit zou dus (de bron van) de geselecteerde text omringen met <B>-tags, maar stel nou eens voor dat ik er <H1 class=downsized> [...] </H1> van wil maken. Ik heb ook een andere functie gevonden die de html achter de selectie ophaalt:
code:
1
2
3
4
[..]
var rangeSel = parent.workspace.document.selection.createRange();
var htmlSel = rangeSel.htmlText;
var out = '<H1 class=downsized>'+htmlSel+'</H1>';

Nou zit ik dus met die variabele out, hoe moet ik die dan de huidige selectie laten overschrijven(zoals met execCommand ook gebeurd)?

Ik heb natuurlijk msdn al bekeken, maar niks (duidelijks) kunnen vinden. Ook GoT afgezocht, en een topic van een jaar oud gevonden die niet compleet de lading dekte(vandaar dus een nieuwe ipv kicken)
[topic=99374]

[edit:]createRange ipv createTextRange |:(

  • mEdnass
  • Registratie: November 2001
  • Laatst online: 04-12-2021
Ik kon het niet laten nog eens beter te lezen op msdn, ik ben er uit! :7
Voor (toekomstig) belangstellenden is hier de niet afgewerkte functie:
code:
1
2
3
4
5
6
7
8
9
10
function applyTag() {
    var Sel = parent.workspace.document.selection;

    var rangeSel = Sel.createRange();
    var htmlSel = rangeSel.htmlText;

    rangeSel.pasteHTML('<H1 class=downsized>'+htmlSel+'</H1>');
    parent.workspace.focus();

}

bedankt voor jullie massale support >:)

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

* SchizoDuckie is met ongeveer hetzelfde bezig :)

maar pakt het anders aan.

Ik heb zojuist even de volgende functie geschreven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function Selectit() // Gets current selection start and end.
{
with(edit = editlayer.document.selection.createRange())
    {
    pasteHTML('_-='+htmlText+'=-_');
    }
with (editlayer.document)
    {
    with(innerHTML)
        {
        selectionstart = indexOf('_-=');
        selectionend = indexOf('=-_') -3;
        this.innerHTML = replace('_-=', '');
        this.innerHTML = replace('=-_', '');
        }
    innerHTML = innerHTML.replace('_-=', '');
    innerHTML = innerHTML.replace('=-_', '');
    focus();
    }
// alert(selectionstart+ '\n'+ selectionend);
edit.select();
}

8-) daarmee heb ik dus de begin en eind positie van een selectie, en heb ik de hele execCommand() (die alleen maar bagger code genereert) niet meer nodig 8-)

[edit] functie geoptimized en gefixt. klopte geen fuk van.

Stop uploading passwords to Github!


  • mEdnass
  • Registratie: November 2001
  • Laatst online: 04-12-2021
Is ook mogelijk, maar op jouw manier vind ik het een beetje omslachtig. Ik wil helemaal niet weten waar iets geselecteerd is, ik wil alleen de (html)bron van de geselecteerde text aanpassen en terug gooien. Op deze manier kan dus nooit iemand de text '_-=' veilig intikken...
(niet dat iemand dat ook maar vana plan zal zijn, maar ja... :P)

En dat execCommand heb ik al overboord gegooid(behalve voor het sleur- en pleurwerk), ik voel me beter met mijn eigen functies en idd niet de m$ bagger...

Toch bedankt voor de tip, maar 'k hou het toch maar bij m'n eigen functie denk'

  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 10-09 15:15

Dark Blue

Compositionista!

Alpenmeisje

whoops. wrong account :-/

heidiulrich.nl | adventura.nl : rugzakavonturen | pathwise.nl : prepping geeks to get jobs


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Op zaterdag 16 maart 2002 07:47 schreef mEdnass het volgende:
Is ook mogelijk, maar op jouw manier vind ik het een beetje omslachtig. Ik wil helemaal niet weten waar iets geselecteerd is, ik wil alleen de (html)bron van de geselecteerde text aanpassen en terug gooien.
Klopt! ik dus ook! maar dan zal je dus wel moeten weten wát er geselecteerd is!
Op deze manier kan dus nooit iemand de text '_-=' veilig intikken...
(niet dat iemand dat ook maar vana plan zal zijn, maar ja... :P)
Ik heb eerst geprobeerd een of andere wazige htmlentity als search character te nemen, maar dat lukte even niet. uit luiheid maar even veranderd door dit, maar het wordt nog wel een unieke string die er komt te staan.
En dat execCommand heb ik al overboord gegooid(behalve voor het sleur- en pleurwerk), ik voel me beter met mijn eigen functies en idd niet de m$ bagger...
:X
Toch bedankt voor de tip, maar 'k hou het toch maar bij m'n eigen functie denk'
Ok. zelf weten, maar ik ben al weer wat verder :P

http://www.nvlf.nl/editor.nvlf

• selecteer wat text, en experimenteer :)
(ja, je selectie vakje gaat nu nog weg, maar in de window.status staat welke chars je geselecteerd heb.

Stop uploading passwords to Github!

Pagina: 1