Ik ben een tijdje geleden begonnen met een object georiënteerde benadering van Javascript en vraag me af of het volgende überhaupt mogelijk is (ik heb al tig manieren geprobeerd, maar helaas):
Een knop die de tekst bold moet maken gebruikt "htmlEditor1.strong()". Dat werkt in zoverre dat binnen de functie strong() "this.htmlElement" gewoon een waarde heeft.
Wat ik nu graag zou willen is dat function vervolgens execCmd() aanroept en daar een stukje code uitvoert. Dat krijg ik nog wel voor elkaar, wat echter niet wil lukken is op de een-of-andere manier binnen execCmd() bij de waarde van this.htmlElement te kunnen. Is dit überhaupt mogelijk, of snap ik het hele principe niet
Bij alles wat ik erover heb gelezen (de helft van de Google-links) wordt dit nergens gebruikt, wat m'n vermoeden sterkt dat ik iets wil wat niet op deze manier kan.
Is er een andere manier om dit netjes te doen als het niet anders kan? Ik wil het graag op een soortgelijke manier omdat er meerdere html editors in een pagina kunnen zitten.
(Ik heb geprobeerd "IeHtmlEditor.prototype.execCmd = execCmd;" en/of "strong.prototype.execCmd = execCmd;" toe te voegen (op goed geluk), maar dit heeft niet het beoogde resultaat.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| function IeHtmlEditor( _htmlElement ) {
this.htmlElement = _htmlElement;
}
IeHtmlEditor.prototype.strong = strong;
function strong() {
execCmd( 'bold' );
}
function execCmd( command ) {
// stukje code hier wat een stukje tekst bold maakt
}
htmlEditor1 = new IeHtmlEditor( 'naam van editor' ); |
Een knop die de tekst bold moet maken gebruikt "htmlEditor1.strong()". Dat werkt in zoverre dat binnen de functie strong() "this.htmlElement" gewoon een waarde heeft.
Wat ik nu graag zou willen is dat function vervolgens execCmd() aanroept en daar een stukje code uitvoert. Dat krijg ik nog wel voor elkaar, wat echter niet wil lukken is op de een-of-andere manier binnen execCmd() bij de waarde van this.htmlElement te kunnen. Is dit überhaupt mogelijk, of snap ik het hele principe niet
Is er een andere manier om dit netjes te doen als het niet anders kan? Ik wil het graag op een soortgelijke manier omdat er meerdere html editors in een pagina kunnen zitten.
(Ik heb geprobeerd "IeHtmlEditor.prototype.execCmd = execCmd;" en/of "strong.prototype.execCmd = execCmd;" toe te voegen (op goed geluk), maar dit heeft niet het beoogde resultaat.