Toon posts:

Inhoud htmlarea met javascript kopieren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben op stage bezig met moodle. Nu moet ik in de WYSIWYG editor HTMLarea een knop maken die de inhoud van die editor kopieert naar clipboard om daarna in word te plakken. Nu is de knop al klaar en hij doet al wat maar nu wou ik weten hoe je dat het beste kan doen. Met het DOM model getelementbyid etc? het probleeem is namelijk dat alles in een php pagina staat en die editor staat weer in een andere pagina binnen die php pagina.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

Javascript/clientside development -> Webdesign & Graphics.

En als je al wat af hebt, laat eens wat van je huidige code zien dan kunnen we beter inschatten wat je wel of niet goed doet :)

Professionele website nodig?


Verwijderd

Topicstarter
curry684 schreef op vrijdag 22 april 2005 @ 10:20:
Javascript/clientside development -> Webdesign & Graphics.

En als je al wat af hebt, laat eens wat van je huidige code zien dan kunnen we beter inschatten wat je wel of niet goed doet :)
de code die ik af heb is het volgende ik heb de button toegevoegd aan de button array
code:
1
2
3
4
5
6
7
copywiki: [ "copy wiki content", "ed_wiki.gif", false, function(e) {wikiOwnage();} ],

function wikiOwnage()
{
    var hoofdNode = document.documentElement;
    window.alert(hoofdNode);
}

en een methode die word aangeroepen bij het indrukken.

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Je kunt het beste even spelen met zoiets als document.body.createRange()

voor i.e. http://msdn.microsoft.com...objects/obj_textrange.asp
voor mozilla http://www.dotvoid.com/view.php?id=11
en op GoT ff het topic van Quist door lezen [rml][ KB] WYSIWYG Editors in Javascript[/rml]

in de web development SDK van MS staat ook genoeg info over het clipboardData object

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

Voor zover ik weet wordt er geen support geleverd op scripts van derden. curry684 is je blijkbaar goed gezind. Kijk voor de grap eens naar execCommand. Ik krijg nou niet echt de indruk dat jij ook maar enige moeite hebt gedaan om je te verdiepen in de werking van een wysiwyg editor.
Bovendien is het selecteren van een Node niet echt erg complex.

Code iets als:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function bladibla(node, pos) {
  var range;
  var collapsed = (typeof pos != "undefined");
  if (browser.isIE) {
    range = getFrame().document.body.createTextRange();
    range.moveToElementText(node);
    (collapsed) && range.collapse(pos);
    range.select();
  } else { // gecko
    var sel = getSelection();
    range = getFrame().document.createRange();
    range.selectNodeContents(node);
    (collapsed) && range.collapse(pos);
    sel.removeAllRanges();
    sel.addRange(range);
  }
  setRange(range);
}

[ Voor 10% gewijzigd door Verwijderd op 22-04-2005 12:23 ]


Verwijderd

Topicstarter
Ik ben goed onderweg met de oplossing. Maar nu had ik een vraagje over DOM. Ik wil graag de inhoud van een table naar clipboard kopieren. Maar die table bestaat zoals verwacht ook weer uit node's kan ik die ook allemaal in een keer mee kopieren of meot ik die stuk voor stuk gaan doen?

Verwijderd

Gewoon de tabel selecteren, dan wordt ook de inhoud van de tabel geselecteerd. Als je dan execCommand copy uitvoert, zal de HTML van de complete tabel op je clipboard staan.

Verwijderd

Topicstarter
Verwijderd schreef op maandag 25 april 2005 @ 12:20:
Gewoon de tabel selecteren, dan wordt ook de inhoud van de tabel geselecteerd. Als je dan execCommand copy uitvoert, zal de HTML van de complete tabel op je clipboard staan.
Ok maar nu is het probleem dat ik niet de html code moet hebben maar de opgemaakte tekst. Kan ik er ook voor zorgen dat ik de opgemaakte tekst met tabellen etc kan kopieren door middel van javascript ?

Verwijderd

Plak je die html weer in Word, dan bakt Word er weer opgemaakte tekst van. OpenOffice trouwens ook. Ik begin er een beetje moe van te worden. Probeer het gewoon eerst eens uit en kijk wat er gebeurt.
Pagina: 1