Avatar billede vagn16 Nybegynder
07. august 2002 - 10:14 Der er 2 kommentarer og
2 løsninger

wysiwyg

Hej!

Jeg har fundet følgende bud på en wysiwyg editor;

<html>
<head>
<title> Browser Based HTML Editor </title>
<script language="JavaScript">

  var viewMode = 1; // WYSIWYG

  function Init()
  {
    iView.document.designMode = 'On';
  }
 
  function selOn(ctrl)
  {
    ctrl.style.borderColor = '#000000';
    ctrl.style.backgroundColor = '#B5BED6';
    ctrl.style.cursor = 'hand';   
  }
 
  function selOff(ctrl)
  {
    ctrl.style.borderColor = '#D6D3CE'; 
    ctrl.style.backgroundColor = '#D6D3CE';
  }
 
  function selDown(ctrl)
  {
    ctrl.style.backgroundColor = '#8492B5';
  }
 
  function selUp(ctrl)
  {
    ctrl.style.backgroundColor = '#B5BED6';
  }
   
  function doBold()
  {
    iView.document.execCommand('bold', false, null);
  }

  function doItalic()
  {
    iView.document.execCommand('italic', false, null);
  }

  function doUnderline()
  {
    iView.document.execCommand('underline', false, null);
  }
 
  function doLeft()
  {
    iView.document.execCommand('justifyleft', false, null);
  }

  function doCenter()
  {
    iView.document.execCommand('justifycenter', false, null);
  }

  function doRight()
  {
    iView.document.execCommand('justifyright', false, null);
  }

  function doOrdList()
  {
    iView.document.execCommand('insertorderedlist', false, null);
  }

  function doBulList()
  {
    iView.document.execCommand('insertunorderedlist', false, null);
  }
 
  function doForeCol()
  {
    var fCol = prompt('Enter foreground color', '');
   
    if(fCol != null)
      iView.document.execCommand('forecolor', false, fCol);
  }

  function doBackCol()
  {
    var bCol = prompt('Enter background color', '');
   
    if(bCol != null)
      iView.document.execCommand('backcolor', false, bCol);
  }

  function doLink()
  {
    iView.document.execCommand('createlink');
  }
 
  function doImage()
  {
    var imgSrc = prompt('Enter image location', '');
   
    if(imgSrc != null)   
    iView.document.execCommand('insertimage', false, imgSrc);
  }
 
  function doRule()
  {
    iView.document.execCommand('inserthorizontalrule', false, null);
  }
 
  function doFont(fName)
  {
    if(fName != '')
      iView.document.execCommand('fontname', false, fName);
  }
 
  function doSize(fSize)
  {
    if(fSize != '')
      iView.document.execCommand('fontsize', false, fSize);
  }
 
  function doHead(hType)
  {
    if(hType != '')
    {
      iView.document.execCommand('formatblock', false, hType); 
      doFont(selFont.options[selFont.selectedIndex].value);
    }
  }
 
  function doToggleView()
  { 
    if(viewMode == 1)
    {
      iHTML = iView.document.body.innerHTML;
      iView.document.body.innerText = iHTML;
     
      // Hide all controls
      tblCtrls.style.display = 'none';
      selFont.style.display = 'none';
      selSize.style.display = 'none';
      selHeading.style.display = 'none';
      iView.focus();
     
      viewMode = 2; // Code
    }
    else
    {
      iText = iView.document.body.innerText;
      iView.document.body.innerHTML = iText;
     
      // Show all controls
      tblCtrls.style.display = 'inline';
      selFont.style.display = 'inline';
      selSize.style.display = 'inline';
      selHeading.style.display = 'inline';
      iView.focus();
     
      viewMode = 1; // WYSIWYG
    }
  }

</script>
<style>

  .butClass
  {   
    border: 1px solid;
    border-color: #D6D3CE;
  }
 
  .tdClass
  {
    padding-left: 3px;
    padding-top:3px;
  }

</style>

</head>

<body onLoad="Init()">
    <table id="tblCtrls" width="415px" height="30px" border="0" cellspacing="0" cellpadding="0" bgcolor="#D6D3CE">   
    <tr>
        <td class="tdClass">
            <img alt="Bold" class="butClass" src="bold.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doBold()">
            <img alt="Italic" class="butClass" src="italic.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doItalic()">
            <img alt="Underline" class="butClass" src="underline.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doUnderline()">
           
            <img alt="Left" class="butClass" src="left.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doLeft()">
            <img alt="Center" class="butClass" src="center.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doCenter()">
            <img alt="Right" class="butClass" src="right.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doRight()">
                       
            <img alt="Ordered List" class="butClass" src="ordlist.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doOrdList()">
            <img alt="Bulleted List" class="butClass" src="bullist.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doBulList()">
           
            <img alt="Text Color" class="butClass" src="forecol.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doForeCol()">
            <img alt="Background Color" class="butClass" src="bgcol.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doBackCol()">
           
            <img alt="Hyperlink" class="butClass" src="link.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doLink()">
            <img alt="Image" class="butClass" src="image.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doImage()">
            <img alt="Horizontal Rule" class="butClass" src="rule.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doRule()">
           
        </td>
    </tr>
    </table>
    <iframe id="iView" style="width: 415px; height:205px"></iframe>

    <table width="415px" height="30px" border="0" cellspacing="0" cellpadding="0" bgcolor="#D6D3CE">   
    <tr>
        <td class="tdClass" colspan="1" width="80%">
          <select name="selFont" onChange="doFont(this.options[this.selectedIndex].value)">
            <option value="">-- Font --</option>
            <option value="Arial">Arial</option>
            <option value="Courier">Courier</option>
            <option value="Sans Serif">Sans Serif</option>
            <option value="Tahoma">Tahoma</option>
            <option value="Verdana">Verdana</option>
            <option value="Wingdings">Wingdings</option>
          </select>
          <select name="selSize" onChange="doSize(this.options[this.selectedIndex].value)">
            <option value="">-- Size --</option>
            <option value="1">Very Small</option>
            <option value="2">Small</option>
            <option value="3">Medium</option>
            <option value="4">Large</option>
            <option value="5">Larger</option>
            <option value="6">Very Large</option>
          </select>
          <select name="selHeading" onChange="doHead(this.options[this.selectedIndex].value)">
            <option value="">-- Heading --</option>
            <option value="Heading 1">H1</option>
            <option value="Heading 2">H2</option>
            <option value="Heading 3">H3</option>
            <option value="Heading 4">H4</option>
            <option value="Heading 5">H5</option>
            <option value="Heading 6">H6</option>
          </select>
        </td>
        <td class="tdClass" colspan="1" width="20%" align="right">
          <img alt="Toggle Mode" class="butClass" src="mode.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doToggleView()">
          &nbsp;&nbsp;&nbsp;
        </td>
    </tr>
    </table>
</body>
</html>

-------- spørgsmål:

1, jeg vil gerne have at image-funktionen henter en dropdown - som evt. kunne være alle billeder fra en mappe, eller input fra en database - så man kan hente de billeder der er tilgængelige

2, hvordan får man iframe'en ind i form så man kan gemme det??? lav gerne eksempel med sumitbutton og hele svineriet...

3, hvordan får man lagt den gemte information ind i ifram'en igen - fra databasen - så man kan redigere i det???

vh

vagn / 16
Avatar billede Slettet bruger
07. august 2002 - 15:19 #1
Jeg har lavet en anden smart wysiwyg-editor her:

http://phoenixv.h4f.dk/wysiwyg.zip

... som du kan nappe. Den løser i hvert fald nr. 2!

Nr. 3 er nem nok; du sætter bare iframens url til at være lig med en side, som du har lavet ud fra nr. 2!

Jeg har selv været igang med noget lignende her, hvor du kan gemme og hente:

http://www.friserverplads.dk/phoenixv/wysiwyg.php
Avatar billede vagn16 Nybegynder
08. august 2002 - 10:19 #2
Hej!

...ingen af dine links virker?!

vagn / 16
Avatar billede Slettet bruger
08. august 2002 - 14:12 #3
Det første gør, men det andet tog jeg lige fejl af! Url'en er:
http://www.friserverplads.dk/minpromillen/wysiwyg.php
Avatar billede vagn16 Nybegynder
18. juli 2004 - 18:57 #4
Lukker...
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