Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Smilies invoegen in meerdere textarea's

Annie
5 antwoorden
  • Het probleem is als volgt:
    Ik gebruik een CMS, waarin de formulieren automatisch worden gegenereerd. Nu kan ik dmv een extra modules, extra funxtionaliteit aan de textarea's geven. Dit wil ik doen in de vorm van het toevoegen van smilies dmv een click. Nu heb ik onderstaand script:

    ubb-script.js:
    [code:1:6328e2152c]
    function getTarget(el) {
    target = (document.getElementById)? document.getElementById(el): 0;
    }

    function storeCursor(el) {
    if (document.all && el.createTextRange) el.cursorPos = document.selection.createRange().duplicate();
    }

    function putStr(text) {
    if (target) {
    if (document.all && target.cursorPos) {
    target.cursorPos.text = text;
    }
    else if (typeof(target.selectionStart) != 'undefined') {
    var sStart = target.selectionStart;
    var sEnd = target.selectionEnd;
    target.value = target.value.substr(0, sStart) + text + target.value.substr(sEnd, target.value.length);
    target.selectionStart = (sStart == sEnd)? sStart + text.length : sStart;
    target.selectionEnd = sStart + text.length;
    }
    else {
    target.value += text;
    }
    target.focus();
    storeCursor(target);
    }
    }[/code:1:6328e2152c]

    En de volgende HTML:
    [code:1:6328e2152c]
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="ubb-script.js"></script>
    </head>

    <body>
    <textarea id="content" name="content" rows="9" cols="45" style="width: 384px; height: 150px" onfocus="getTarget('content')" onselect="storeCursor(this)" onkeyup="storeCursor(this)" onclick="storeCursor(this)"></textarea><br />
    <a href="javascript://" onclick="putStr(' :) ');return false"><img src="afbeeldingen/grijnzen.gif" width="20" height="20" border="0" alt="" /></a><br />
    <a href="javascript://" onclick="putStr(' :( ');return false"><img src="afbeeldingen/boos.gif" width="20" height="20" border="0" alt="" /></a><br />
    <a href="javascript://" onclick="putStr(' ;) ');return false"><img src="afbeeldingen/knipoog.gif" width="20" height="20" border="0" alt="" /></a><br />
    <a href="javascript://" onclick="putStr(' :P ');return false"><img src="afbeeldingen/spotten.gif" width="20" height="20" border="0" alt="" /></a><br />
    </body>
    </html>[/code:1:6328e2152c]

    Dit werkt perfect! Maar, nu moet het toepasbaar zijn op een pagina met meerdere textarea's met verschillende names & id's.

    Kan iemand mij vertellen hoe ik dit aan moet pakken? Ik heb van alles geprobeerd maar kom er maar niet uit!



    Alvast bedankt! :D
  • Ik heb ooit een dit gemaakt, misschien kun je er iets mee:
    http://home.hccnet.nl/m.wargers/test/bb/bb.htm
    http://home.hccnet.nl/m.wargers/test/bb/

    Het is oorspronkelijk gebaseerd op crisp z'n script:
    http://www.codebase.nl/index.php/command/viewcode/id/189

    Daar heeft die van jou ook wel wat van weg geloof ik.
  • Bedankt mw22, maar daar kan ik niets mee.. Jouw textarea's staan in een div 'textarea' waardoor ze getriggered worden.. Dat kan ik helaas niet doen… :(

    Ik moet de javascript code veranderen zodat het gekoppeld wordt aan elke id/name van een textarea. (De smileys/ubb-balk wordt overigens onder elke textarea afzonderlijk weergegeven)

    Ik denk dat het iets met deze functie te maken heeft:
    [code:1:a21d147344]
    function getTarget(el) {
    target = (document.getElementById)? document.getElementById(el): 0;
    }[/code:1:a21d147344]


    Of zit ik er helemaal naast?
  • Klopt, elke textarea heeft een onfocus attribuut/event handler die ervoor zorgt dat dit de 'actieve' textarea wordt.

    [code:1:8d6a9b9cc9]
    <textarea id="content" name="content" rows="9" cols="45" style="width: 384px; height: 150px" onfocus="getTarget('content')"
    [/code:1:8d6a9b9cc9]

    Dus voor elke textarea moet je een nieuw uniek id gebruiken en de onfocus aanpassen aan de hand van die unieke id.
  • [quote:e7f6475558]Dus voor elke textarea moet je een nieuw uniek id gebruiken en de onfocus aanpassen aan de hand van die unieke id.[/quote:e7f6475558]
    Precies! Maar, stel nou dat ik meerdere textarea's heb. Die worden geladen en dan wordt op elke textarea gefocust. Volgens mij kan dat niet..

    Wat ik wil, is dat elke groep smileys wordt gekoppeld aan de daarboven aanwezige textarea. Dus, wanneer ik klik op een smiley onder textarea 1 komt ie ook alleen in textarea 1.
    En wanneer ik dan klik op een smiley onder textarea 2, word ie enkel ingevoegd in textarea 2.

    Het voordeel hiervan is, is dat wanneer ik op een smiley klik zonder dat de textarea getriggered is, ik de focus op de desbetreffende textarea kan zetten.


    Het probleem is echter, hoe doe ik dat…

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.