[JavaScript] plaatje invoegen in Rich Text Editor

Pagina: 1
Acties:
  • 164 views sinds 30-01-2008
  • Reageer

  • gizmo9003
  • Registratie: November 2000
  • Laatst online: 06-04 21:07

gizmo9003

Go For It!

Topicstarter
Ik heb de volgende rich text editor in gebruik:
http://www.kevinroth.com/rte/demo.htm

Nu wilde ik hieraan een betere functie toevoegen, om plaatjes in te kunnen voegen.
Hoe het op het moment werkt:
Als je op de knop plaatje toevoegen klikt, wordt je om de locatie gevraagd, en dan wordt het plaatje ingevoegd. Zo dus:
code:
1
2
3
4
imagePath = prompt('Enter Image URL:', 'http://');              
if ((imagePath != null) && (imagePath != "")) {
  rteCommand(rte, 'InsertImage', imagePath);
}


Maar nu wil ik ervan maken, dat als je op de knop klikt, er een venster komt, met allerlei plaatjes, en dat wanneer je op zo'n plaatje klikt, deze ingevoegd wordt.

Nu had ik het volgende bedacht:
Als je op de knop klikt, wordt een popupje geopend. Deze leest met behulp van php een directory uit, en geeft alle plaatjes weer.
De plaatjes een OnClick meegeven, die het imagePath aanpast, en het commando uitvoert.
Maar dit werkt niet. Als ik op een plaatje klik, refresht die popup een keer, maar verder gebeurt er niets.
Dit is mijn code voor bijvoorbeeld 1 plaatje:
code:
1
<input type="image" src="images/justifyfull.gif" onClick="AddImage('justifyfull.gif')"><br>

Hij roept dus AddImage aan, deze functies:
code:
1
2
3
4
5
6
function AddImage(path) {
    if ((path != null) && (path != "")) {
        window.opener.rteCommand(rte, 'InsertImage', path);
    }
    alert("gedaan");
}


Maar dat werkt dus niet. Zoals gezegd refresht alleen het popup window, verder niets.
Voorbeeld is te vinden op: http://www.samenzat.nl/test/rte/index.php

Weet iemand waar ik de mist in ga?

De eerste regel van AddImage wordt uitgevoerd (getest met alert) hij komt ook tot aan de window.opener. Maar die alert(gedaan) wordt niet weergegeven, dus er gaat iets fout met de window.opener regel

[ Voor 29% gewijzigd door gizmo9003 op 07-12-2005 22:41 ]

tjah..


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ik krijg overigens voor je refresh een JS error (rte undefined op line 13)

code:
1
window.opener.rteCommand(rte, 'InsertImage', path);


Kan helaas niet verder kijken, moet weg :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • TheBorg
  • Registratie: November 2002
  • Laatst online: 16:24

TheBorg

Resistance is futile.

Probeer eens self.parent.rteCo....etc.

  • gizmo9003
  • Registratie: November 2000
  • Laatst online: 06-04 21:07

gizmo9003

Go For It!

Topicstarter
BtM909 schreef op woensdag 07 december 2005 @ 22:43:
Ik krijg overigens voor je refresh een JS error (rte undefined op line 13)

code:
1
window.opener.rteCommand(rte, 'InsertImage', path);


Kan helaas niet verder kijken, moet weg :)
Hey inderdaad.. ik zie hem maar heel eventjes onderin, had het nog niet gezien.
Dat zou dan inderdaad de fout zijn.
Eens kijken naar die rte

tjah..


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Een image-input gebruik je normaalgesproken om een form te submitten. Waarom maak je van die plaatjes niet gewoon images (<img />) met een onclick?

[ Voor 7% gewijzigd door Annie op 07-12-2005 22:47 ]

Today's subliminal thought is:


  • gizmo9003
  • Registratie: November 2000
  • Laatst online: 06-04 21:07

gizmo9003

Go For It!

Topicstarter
TheBorg schreef op woensdag 07 december 2005 @ 22:45:
Probeer eens self.parent.rteCo....etc.
Had die geprobeerd, daar lag het niet aan!

Was inderdaad dat de variabele rte ongedefinieerd was in het popupvenstertje. Logisch natuurlijk.
Simpel opgelost:
Bij dat knopje om een plaatje toe te voegen via zo'n popupwindowtje, hem het php bestandje laten openen met als extra variabele die RTE. Deze in het php scriptje in het javascript laten echo-en, en hij is weer gedefinieerd ;)

20x overheen gekeken..zucht...

Edit:
Die inputs zijn achteraf ook wat onnodig ja.. zal ze eens gaan vervangen ;)

Edit2:
BtM909, bedankt voor de snelle hulp! :) en de rest natuurlijk ook

[ Voor 38% gewijzigd door gizmo9003 op 07-12-2005 22:56 ]

tjah..


Verwijderd

Ik zou die editor niet gaan gebruiken, ik gebruik hem ook momenteel voor een CMS maar er zitten irritante dingen aan. Zoals het plakken vanuit Word, hij neemt de gehele opmaak over (doen ze allemaal) en deze kan je niet verwijderen (dat doen ze dan weer niet allemaal). Ook het bewerken van linken en plaatjes is niet te doen.

Voor een CMS kan je het best gebuik maken van tinymce, fckeditor of htmlarea (tinymce is de beste imo), of je wilt het natuurlijk simpel houden

  • Noork
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op woensdag 07 december 2005 @ 23:10:
Ik zou die editor niet gaan gebruiken, ik gebruik hem ook momenteel voor een CMS maar er zitten irritante dingen aan. Zoals het plakken vanuit Word, hij neemt de gehele opmaak over (doen ze allemaal) en deze kan je niet verwijderen (dat doen ze dan weer niet allemaal). Ook het bewerken van linken en plaatjes is niet te doen.

Voor een CMS kan je het best gebuik maken van tinymce, fckeditor of htmlarea (tinymce is de beste imo), of je wilt het natuurlijk simpel houden
FCK editor is inderdaad een zeer mooie editor. En is ook voorzien van mogelijkheden om te browsen naar een image op de server. Maar nadeel is dat het best lastig is om deze te implementeren of te integreren in een custom CMS. Wanneer je zo'n paste functie zonder opmaak zou willen, is dit heel makkelijk te maken. Zie onderstaande javascript voorbeeld:
code:
1
2
3
var sText = HTMLEncode( clipboardData.getData("Text") ) ;
sText = sText.replace(/\n/g,'<BR>') ;
insertHtml(sText) ;

  • gizmo9003
  • Registratie: November 2000
  • Laatst online: 06-04 21:07

gizmo9003

Go For It!

Topicstarter
Verwijderd schreef op woensdag 07 december 2005 @ 23:10:
...
Voor een CMS kan je het best gebuik maken van tinymce, fckeditor of htmlarea (tinymce is de beste imo), of je wilt het natuurlijk simpel houden
Bedankt voor de tip. Maar ik heb juist gekozen voor deze, omdat hij simpel in elkaar zit, en simpel in te bouwen is. Het is ook voor mij niet nodig, om vanuit een andere applicatie te kopieren/plakken.
Het is gewoon een overkill feature voor onze vriendensite ;)

Eenmaal ingevoerde links zijn idd niet te bewerken zag ik ja. Misschien ga ik dat nog proberen aan te passen, maar anders moeten ze gewoon de link verwijderen en een nieuwe invoeren. Hetzelfde met plaatjes.

tjah..

Pagina: 1