Avatar billede encory Nybegynder
16. februar 2004 - 15:10 Der er 5 kommentarer og
2 løsninger

Dan streng fra formdata og kopier til udklipsholder.

Hej!

Er der nogen der kan lave en eller flere funktioner der kan skabe en streng ud fra form data og kopiere denne streng til windows udklipsholder.
FX. et textarea og et par checkboxe. Man skriver i textareaet og kan vælge om teksten skal være fed eller ej.   
tekst: teststreng bliver til:
<span>teststreng</span>
eller <span style="font-weight : bold;">teststreng</span>

Denne streng skal så kopieres til windows udklipsholder.
Leder efter en komplet løsning.
Avatar billede skovenborg Nybegynder
16. februar 2004 - 17:01 #1
Tænker du på:
<script type="text/javascript">
  var strFormat;
  function kopierTekst(copyString,copyFormat) {
        outputBefore = (copyFormat != undefined) ? copyFormat.substring(0,copyFormat.indexOf(">")+1) : "";
        outputAfter = (copyFormat != undefined) ? copyFormat.substr(copyFormat.lastIndexOf("<")) : "";
        window.clipboardData.setData("Text",outputBefore+copyString+outputAfter);
  }
  </script>

<form name="form1">
  <textarea name="tekst"></textarea>
  Normal: <input type="radio" name="format" onclick="strFormat = this.value;"  value="<span></span>" />
  Fed: <input type="radio" name="format" onclick="strFormat = this.value;" value="<span style='font-weight:bold;'></span>" />
  <input type="button" value="Kopier" onclick="kopierTekst(this.form.tekst.value,strFormat);" />
</form>

Forventer dog at dit format ikke indeholder flere forskellige tags.
Avatar billede skovenborg Nybegynder
16. februar 2004 - 17:02 #2
--- det skal lige siges at det kun virker i IE ;-)
Avatar billede skovenborg Nybegynder
16. februar 2004 - 17:05 #3
nåja, så skal man måske lige udvide den til:
<script type="text/javascript">
  var strFormat;
  function kopierTekst(copyString,copyFormat) {
        if (window.clipboardData) {
                outputBefore = (copyFormat != undefined) ? copyFormat.substring(0,copyFormat.indexOf(">")+1) : "";
                outputAfter = (copyFormat != undefined) ? copyFormat.substr(copyFormat.lastIndexOf("<")) : "";
                window.clipboardData.setData("Text",outputBefore+copyString+outputAfter);
        }
  }
  </script>

-så andre browsere ikke bare modtager en fejlmeddelse ;-)
Avatar billede nute Nybegynder
16. februar 2004 - 17:10 #4
dette er et meget hurtig, og ikke "særlig godt gennemtænkt" eksempel ..

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    var g_strBoldStyle = "";
    var g_strSizeStyle = "";
    var g_objBold = null;
    var g_objBolder = null;
    var g_objSize12 = null;
    var g_objSize14 = null;
    function init()
    {
        g_objBold = document.getElementById( "fontWeightBold" );
        g_objBolder = document.getElementById( "fontWeightBolder" );
        g_objSize12 = document.getElementById( "fontSize12" );
        g_objSize14 = document.getElementById( "fontSize14" );
    }
    function makeBold( )
    {
        if( g_objBold.checked && !g_objBolder.checked)
        {
            g_strBoldStyle = g_objBold.value;
        } else if( g_objBolder.checked )
        {
            g_strBoldStyle = g_objBolder.value;
        }
        else
        {
            g_strBoldStyle = "";
        }
    }
    function setSize()
    {
        if( g_objSize12.checked && !g_objSize14.checked)
        {
            g_strSizeStyle = g_objSize12.value;
        } else if( g_objBolder.checked )
        {
            g_strSizeStyle = g_objSize14.value;
        }
        else
        {
            g_strSizeStyle = "";
        }
    }
    function pasteToClipboard()
    {
        var strClipboardTextStart = "<span";
        var strStyle = "";
        var strClipboardTextEnd = "</span>";
        var strText = document.getElementById( "txt" ).value;
       
        if( g_strBoldStyle.length > 0 || g_strSizeStyle.length > 0 )
        {
            strStyle += " style=\"";
        }
        if( g_strBoldStyle.length > 0 )
        {
            strStyle += "font-weight:" + g_strBoldStyle + ";";
        }
        if( g_strSizeStyle.length > 0 )
        {
            strStyle += "font-size:" + g_strSizeStyle + "px;";
        }
        if( strStyle.length > 0 )
        {
            strStyle += "\"";
        }
        strClipboardTextStart += strStyle + ">";
       
        clipboardData.setData('TEXT' , strClipboardTextStart + strText + strClipboardTextEnd);
    }
    //-->
    </script>
</head>

<body onload="init();">
<input type="text" id="txt"><br>
<input type="checkbox" id="fontWeightBold" value="bold" onclick="makeBold();">Bold<br>
<input type="checkbox" id="fontWeightBolder" value="bolder" onclick="makeBold();">Bolder<br>
<input type="checkbox" id="fontSize12" value="12" onclick="setSize();">12px<br>
<input type="checkbox" id="fontSize14" value="14" onclick="setSize();">14px<br>
<input type="button" onclick="pasteToClipboard();" value="til clipboard">
</body>
</html>

/nute
Avatar billede encory Nybegynder
16. februar 2004 - 18:56 #5
Tak for forslagene begge to...
jeg har valgt nutes fordi den var simpel og kunne implementeres direkte i det jeg selv havde lavet.... Jeg har dog taget noget af koden fra skovenborg, så jeg ville gerne give jer begge point med en skæv fordeling til nute...
Avatar billede skovenborg Nybegynder
16. februar 2004 - 19:02 #6
helt i orden :-)
Avatar billede nute Nybegynder
17. februar 2004 - 09:42 #7
fino ...

svar :o]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester