Toon posts:

[javascript]Focus naar iframe verplaatsen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het ontwikkelen van een WYSIWYG textbox in html.

De 'tekstbox' is een simpele, lege iframe, waarvan de designMode op "on" is gezet. De knoppenbalk (bold, italic, etc) bevind zich op de hoofdpagina. Wanneer ik op een van die knoppen druk, gaat de focus uiteraard terug naar de hoofdpagina. Dit is niet gewenst, de gebruiker moet daarna gewoon kunnen doortypen, en daarvoor moet de focus staan op het iframe.

Nu heb ik al verschillende dingen geprobeerd. Voor alle duidelijkheid hier de functie waar het om gaat:

code:
1
2
3
4
function setSimpleStyle(cmd)
{
    documentEdit.execCommand(cmd, false, null);
}


Dit is de functie die wordt aangeroepen voor dingen als bold, italic, etc. documentEdit verwijst naar het contentDocument van het bewuste iframe. Een focus() op documentEdit werkt niet (documentEdit.focus is geen functie).

Heeft iemand enig idee?
Alvast bedankt

Edit: Ik heb ook de methode geprobeerd die door mozilla wordt aangeraden (document.getElementById("iframe").contentWindow.focus()). Deze geeft geen errors, maar hij werkt ook niet.

[ Voor 11% gewijzigd door Verwijderd op 05-05-2005 15:23 ]


  • dev icey
  • Registratie: Augustus 2003
  • Laatst online: 09-12-2025
code:
1
document.getElementById('framename').contentWindow.focus();


Dat moet gewoon werken, zoals ook te zien op:
IE allows the focus() method to be used directly on an iframe. Technically, the focus method should be executed against the contentWindow. The following code fragment can be used to replace iframe.focus() and will work with IE and Mozilla.

document.getElementById("iframe").contentWindow.focus()
Welke script error geeft mijn eerst voorgestelde manier aan? (uiteraard framename veranderen)

Werkend voorbeeld: http://mjacobs.nl/Got/editor/index.php

[ Voor 8% gewijzigd door dev icey op 05-05-2005 15:32 ]


Verwijderd

Topicstarter
Die methode had ik al geprobeerd. :) (stond onderaan mijn bericht)
Ik krijg overigens geen foutmelding.

Oh, en jouw 'werkende voorbeeld' werkt ook niet. Als ik bijvoorbeeld op de Bold knop druk, blijft daar de focus op staan.

[ Voor 23% gewijzigd door Verwijderd op 05-05-2005 15:50 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Verwijderd schreef op donderdag 05 mei 2005 @ 15:50:
Die methode had ik al geprobeerd. :) (stond onderaan mijn bericht)
Ik krijg overigens geen foutmelding.

Oh, en jouw 'werkende voorbeeld' werkt ook niet. Als ik bijvoorbeeld op de Bold knop druk, blijft daar de focus op staan.
Dat voorbeeld werkt wel, de focus staat nog wel op de 'bold' knop maar de echte focus staat op het iframe want als je begint te typen gaat hij verder in het iframe. Het is volgens mij een bugje in FF dat de cursor niet gaat knipperen in het iframe.

Verwijderd

Topicstarter
Ik kan dan echt niet typen hoor. :(

In mozilla werkt het inderdaad wel. Is hier misschien een work-around voor?

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Zo dan:
code:
1
top.frames["documentEdit"].focus();

Verwijderd

Topicstarter
Daar krijg ik javascript-errors bij. Ik heb al varianten met document ervoor, zonder top, etc geprobeerd, maar die code werkt niet.

En dat is ook logisch, want dat mag niet volgens de Mozilla Specificaties. Je kunt géén focus direct op een iframe geven. :(

  • dev icey
  • Registratie: Augustus 2003
  • Laatst online: 09-12-2025
Verwijderd schreef op donderdag 05 mei 2005 @ 16:08:
In mozilla werkt het inderdaad wel. Is hier misschien een work-around voor?
Ik snap het probleem niet, het script wat ik in elkaar heb gezet heb ik zelf getest op een windows xp systeem met Internet explorer 6 en Firefox 1.0.3. Je zegt dat het in mozilla wel werkt, in welke browsers werkt het op jouw computer dan niet? Firefox, Internet Explorer, Opera? Heb je ook geprobeerd deze browsers te updaten naar de nieuwste versie? En is hiermee het probleem opgelost?

Verwijderd

Topicstarter
Ik gebruik zelf Firefox 1.0.2. De nieuwste .deb beschikbaar voor mijn OS.
IE e.d. heb ik niet (gelukkig).

De bedoeling is nu juist dat het in Firefox gaat werken. De pagina's die ik aan het maken ben moeten gaan samenwerken met een extensie die ik aan het schrijven ben.

Daarom is het juist belangrijk dat het in Fx werkt, maar daarin werkt het juist niet. Alle andere browsers kunnen me dus, eerlijk gezegd, gestolen worden.

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Heb je een simpel voorbeeld online staan dan zodat we mee kunnen kijken?

Verwijderd

Topicstarter
www.xs4all.nl/~zeep10/editor.tar.gz

Edit: zoals dit in mozilla werkt, is perfect. Dit heb ik ook graag in Fx.

[ Voor 53% gewijzigd door Verwijderd op 06-05-2005 01:11 ]


Verwijderd

Topicstarter
Is het misschien mogelijk dat iemand die ook Firefox heeft bevestigd of dit wel/niet werkt.

Ik gebruik namelijk ubuntu, en dus ook het ubuntu firefox package. Het is natuurlijk mogelijk dat dit een bug is die door wijzigingen van ubuntu wordt veroorzaakt.

Als ik weet of dat zo is, dan weet ik bij wie ik moet gaan klagen! })

  • dev icey
  • Registratie: Augustus 2003
  • Laatst online: 09-12-2025
Verwijderd schreef op vrijdag 06 mei 2005 @ 14:14:
Is het misschien mogelijk dat iemand die ook Firefox heeft bevestigd of dit wel/niet werkt.

Ik gebruik namelijk ubuntu, en dus ook het ubuntu firefox package. Het is natuurlijk mogelijk dat dit een bug is die door wijzigingen van ubuntu wordt veroorzaakt.

Als ik weet of dat zo is, dan weet ik bij wie ik moet gaan klagen! })
Probeer het eens met een schone firefox profiel. Aangezien het wel in mozilla werkt maar niet in Firefox, ga ik er wel van uit dat het probleem bij firefox ligt. Misschien dat je bij de ontwikkelaars van FireFox voor ubuntu een steekje kan laten vallen?

Verwijderd

Topicstarter
dev icey schreef op vrijdag 06 mei 2005 @ 14:59:
[...]


Probeer het eens met een schone firefox profiel. Aangezien het wel in mozilla werkt maar niet in Firefox, ga ik er wel van uit dat het probleem bij firefox ligt. Misschien dat je bij de ontwikkelaars van FireFox voor ubuntu een steekje kan laten vallen?
Verhip, in een schoon profiel werkt het wel! :o

Verwijderd

Geweldig dat je roept dat je gelukkig IE niet hebt, maar wel een XP look gebruikt en de jscript benaming :D
Om even terug te komen op je probleem. Waarschijnlijk is het een bug in jou browser aangezien het wel werkt in FireFox. Bij mij gaat zelfs de cursor knipperen nadat je op de button hebt gedrukt. Dit is geen bug in FireFox. Welk platform gebruik je eigenlijk? Er zijn namelijk wel platform dependent bugs. Ik heb het getest in Windows XP

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 06 mei 2005 @ 15:27:
Geweldig dat je roept dat je gelukkig IE niet hebt, maar wel een XP look gebruikt en de jscript benaming :D
Om even terug te komen op je probleem. Waarschijnlijk is het een bug in jou browser aangezien het wel werkt in FireFox. Bij mij gaat zelfs de cursor knipperen nadat je op de button hebt gedrukt. Dit is geen bug in FireFox. Welk platform gebruik je eigenlijk? Er zijn namelijk wel platform dependent bugs. Ik heb het getest in Windows XP
Yup, dat doet ie bij mij in een schoon profiel ook. Daar werkt het helemaal zoals het hoort.

Wat je precies met de XP look bedoelt weet ik niet, ik heb zelden met XP gewerkt. De kleuren en de plaatjes heb ik gebruikt van het vBulletin WYSIWYG post-scherm, maar de code is 100% van mij.

En voor de javascript benaming, ik doe dat gewoon zoals Mozilla's Rich Text Editing Specification dat aangeeft, dat lijkt mij prima.

Oh, en je wilde weten welk platform ik gebruik? Ik gebruik Ubuntu Hoary 5.04 64-bit. Snel, stabiel en gegarandeerd volledig IE-vrij ;)
Pagina: 1