[JS] execCommand via popup

Pagina: 1
Acties:

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Ik ben bezig met een Kleurpalet te maken voor mijn dhtml editor. Je selecteert de tekst waarvan je de kleur wil veranderen. Dan klik je op de paletknop, die popup komt, je klik op een kleur en dan moet de tekst veranderen van kleur.

Die kleurenpalet heb ik al klaar, en onder elke kleur zit een onclick.

Nu heb ik het geprobeerd met: parent.document.execCommand('ForeColor' , false, MIJN_KLEUR_VAR);

Maar dat werkt dus niet...
edit:

de selectie verdwijt niet


Weet iemand hiervoor een oplossing?

Ik blijf er iig vrij nuchter onder....


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

oh,when?

...

parent verwijst naar de parent van het huidige window, en niet naar de window waarvan de popup is geopend. Ergens vermoed ik dat je
code:
1
window.opener.document.execCommand('ForeColor' , false, MIJN_KLEUR_VAR);

moet gebruiken.

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


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
hmm thnx, that's it!

Stom :P

Ik blijf er iig vrij nuchter onder....


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Nu ik toch een topic open heb,

weet iemand of het mogelijk is met DHTML de achtergrond kleur van het hele HTML bestand te veranderen? Bij execCOmmand is er wel een BackColor optie, maar die stelt alleen de achtergrond van de huidige selectie bij, en niet de bgcolor van de <BODY>

Ik blijf er iig vrij nuchter onder....


Verwijderd

Op dinsdag 02 juli 2002 11:24 schreef maartenvdv het volgende:
Nu ik toch een topic open heb,

weet iemand of het mogelijk is met DHTML de achtergrond kleur van het hele HTML bestand te veranderen?
ja via DOM scripting bijv:
code:
1
2
3
4
5
function change()
{
docbody = document.getElementsByTagName('body').item(0)
docbody.setAttribute('style','background-color: #000000')
}

Verwijderd

Op dinsdag 02 juli 2002 11:54 schreef Shadow3333 het volgende:

ja via DOM scripting bijv:
code:
1
2
3
4
5
function change()
{
docbody = document.getElementsByTagName('body').item(0)
docbody.setAttribute('style','background-color: #000000')
}
Dat is misschien wel een leuke methode om attributen toe te voegen tijdens het maken van elementen, maar volgens mij is dit niet handig voor het scriptwerk dat daarna komt. Overschrijft jouw code niet álle inline gedefinieerde styles?

Mooie manier van scripten, maar niet erg efficiënt, ben ik bang. De body van het document is bij mij gewoon document.body, en de background-color is dan dus document.body.style.backgroundColor :)
code:
1
document.body.style.backgroundColor = '#169';

Verwijderd

Op dinsdag 02 juli 2002 12:08 schreef Cheatah het volgende:

Overschrijft jouw code niet álle inline gedefinieerde styles?
nee, alleen de background-color wordt veranderd, de rest van de gedefineerde stijlen blijven onaangetast.
code:
1
document.body.style.backgroundColor = '#169';
en dit is natuurlijk veel makkelijker idd. :) (KISS!)

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Hmm, dit werkt heel aardig ja, maar niet voor mijn DIV layer.
code:
1
2
3
4
5
6
<DIV id=oDiv onKeyDown="javascript:checkKey();" 
CONTENTEDITABLE style="border-style: solid; font-family:Book Antiqua; 
font-size: 13px ;border-width: 1px; border-color: #000000; 
background-color: #FFFFFF; padding-left: 1px; padding-right: 1px; 
padding-top: 1px; padding-bottom: 1px; width: 600px;  overflow=auto;">
</DIV>

Door middel van execCommands worden de eigenschappen van het 'HTML' in deze layer aangepast. Zoals het bold maken en underline, e.d.

Maar nu wil ik dus de bgcolor van de html in deze div aanpassen. Dus niet die van de window.opener die mijn popup opent.

Is het wel mogelijk om de properties van het 'html' in die div aan te passen zonder de execCommands?

Even voor de duidelijkheid, ik wil dus niet de properties van de layer veranderen, maar de properties van het html die ik met oDiv.innerHTML opvraag.

edit:


Ik doe het nu met:
window.opener.document.getElementById('oDiv').style.backgroundColor = 'nieuwekleur'

Nu verandert inderdaad de kleur van mijn divje, MAAR, het lijkt erop dat het niet in de de innerHTML verwerkt wordt.

iemand een idee?



[edit2]

Hmm, als ik de html van oDiv opvraag staat er niet eens een <body> tag in |:(
Hoe krijg ik die erbij?

[/edit2]

Ik blijf er iig vrij nuchter onder....

Pagina: 1