Avatar billede biohazard_666 Nybegynder
30. oktober 2005 - 19:53 Der er 7 kommentarer og
1 løsning

WYSIWUG: 2 problemer

Hejsa alle eksperter :)
Jeg har fået bikset mig en WUSIWUG editor sammen - som virker både i IE of Firefox :) Der er dog 2 problemer med det, et mindre et, og et ret "alvorligt" et...

1. Jeg kan ikke sætte en standard font-type i min iframe, den kode jeg har skriver denne fejl: "Et objekt er obligatorisk"

2. Det er muligt at indsætte div. formaterings-objekter som fx en ruler (inserthorizontalrule / <hr>) i selve siden, altså udenfor min iframe.
Jeg har et billede af fejlen her: http://www.case-modding.dk/fejl.gif

Min Javascript kode ser sådan ud:

<script language="JavaScript">
function selOn(ctrl)
{
ctrl.style.cursor = 'hand';   
}
function Init()
{
  document.getElementById('editable').contentWindow.document.designMode = 'ON';
    document.getElementById('editable').contentWindow.document.body.style.fontfamily = 'Verdana'; <----- Denne virker ikke, den siger fejlen som skrevet i problem nr. 1

  document.getElementById('editable').contentWindow.document.open();
  document.getElementById('editable').contentWindow.document.write();
  document.getElementById('editable').contentWindow.document.close();
}


function Format(type)
{
document.getElementById('editable').contentWindow.document.execCommand(''+type+'', false, null)
}
function FontColor()
{
var fCol = prompt('Enter foreground color', '');
    if(fCol != null)
document.getElementById('editable').contentWindow.document.execCommand('forecolor', false, fCol);
}
function BackColor()
{
    var fCol = prompt('Enter background color', '');
    if(fCol != null)
document.getElementById('editable').contentWindow.document.execCommand('backcolor', false, fCol);
}
function Link()
{
document.getElementById('editable').contentWindow.document.execCommand('createlink')
}
function Image()
{
    var imgSrc = prompt('Enter image location', '');
    if(imgSrc != null)
document.getElementById('editable').contentWindow.document.execCommand('insertimage', false, imgSrc);
}
function Font(fName)
{
document.getElementById('editable').contentWindow.document.execCommand('fontname', false, fName);
}
function FontSize(fSize)
{
document.getElementById('editable').contentWindow.document.execCommand('fontsize', false, fSize);
}


function Process()
{
    var htmlCode = document.getElementById('editable').contentWindow.document.body.innerHTML;
    document.frmTraad.htmlTraad.value = htmlCode;
}
</script>


Jeg har taget et uddrag af min HTML kode (menu'en som kan ses på billedet) for at vise hvordan jeg "kalder" min "ruler"/<hr>.

<img alt="Horisontal linie/Horizontal Rule" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/ruler.gif" onClick="Format('inserthorizontalrule')">


Jeg håber virkelig i kan hjælpe mig, da jeg ikke selv har kunnet finde en løsning på problemet :-/
Avatar billede roenving Novice
30. oktober 2005 - 21:03 #1
.fontFamily = "verdana,sans-serif" !-)
Avatar billede biohazard_666 Nybegynder
30. oktober 2005 - 23:16 #2
Virker desværre ikke :(
Det er stadig bare Times New Roman :(
Avatar billede olebole Juniormester
31. oktober 2005 - 00:40 #3
<ole>

Til en begyndelse staver du alle dine Command Identifiers i lowercase ... begynd med at rette til den korrekte stavemåde. Ellers er det helt tilfældigt, hvad der virker:
    http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/commandids.asp

/mvh
</bole>
Avatar billede olebole Juniormester
31. oktober 2005 - 00:43 #4
- og så må du naturligvis ikke forsøge at sætte nogen properties på body-elementet i iframe'en, før denne er færdig-loaded ... og det er den sikkert ikke, når du kalder funktionen 'init'. Kalder du inden, får du (selvfølgelig) den fejl, du beskriver  ;o)
Avatar billede biohazard_666 Nybegynder
31. oktober 2005 - 20:47 #5
<----->
- og så må du naturligvis ikke forsøge at sætte nogen properties på body-elementet i iframe'en, før denne er færdig-loaded ... og det er den sikkert ikke, når du kalder funktionen 'init'. Kalder du inden, får du (selvfølgelig) den fejl, du beskriver  ;o)
<----->


Hvis man ikke må det, kan du så ikke vise hvordan jeg kan få udført et stykke javascript som retter skrifttypen, efter at iframe'n er loadet ? :)
(jeg er ret nybegynder til JS, plejer at bruge ASP, men blev jo nød til at prøve at lave en editor som denne ;) )
Avatar billede olebole Juniormester
01. november 2005 - 09:59 #6
Det kommer helt anpå, hvordan din applikation er konstrueret
Avatar billede biohazard_666 Nybegynder
01. november 2005 - 22:09 #7
du kan lige se min html del :)


<body onLoad="Init()">
<center>
<form onSubmit="return Process()" name="frmTraad" action="create_thread.asp" method="post">
<img border="0" src="<% response.write strImagePath %>menu_center/forumopret.gif" width="425" height="21"></font></p>
                    <div align="center">
                        <table border="1" width="98%" id="table48" cellpadding="4" style="border-collapse: collapse" bordercolor="#2C2D30" bgcolor="#FED637" background="<% response.write strImagePath %>forum/midt.gif">
                            <tr>
                                <td background="<% response.write strImagePath %>forum/top.gif" height="26" colspan="2">
                                Opret Tråd</td>
                            </tr>
                            <tr>
                                <td height="26%" width="44%" style="border-right-style: none; border-right-width: medium">
                                Titel: <input type="text" class="knap" name="titel"></td>
                                <td height="26%" width="51%" style="border-left-style: none; border-left-width: medium">
                                Kategori:
                                <select size="1" name="kategori" style="font-family: Verdana; font-size: 8pt; border: 1px solid #28527B; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #FFFFFF">
<%
strSQL = "SELECT * FROM forum"
set rs = Conn.Execute(strSQL)

Do While NOT rs.EOF
    response.write "<option value=""" & rs("id") & """>" & rs("navn") & "</option>"
    rs.movenext
Loop
%>
                                </select></td>
                            </tr>
                        </table>
                    <br>
                    <div align="center">
                        <table border="1" width="98%" id="table49" cellpadding="4" style="border-collapse: collapse" bordercolor="#2C2D30" bgcolor="#FED637" background="<% response.write strImagePath %>forum/midt.gif">
                            <tr>
                                <td background="<% response.write strImagePath %>forum/top.gif" height="26">
                                Admin Funktioner</td>
                            </tr>
                            <tr>
                                <td height="26%" width="95%" style="border-right-style: none; border-right-width: medium">
                                &nbsp;</td>
                            </tr>
                        </table>
                    </div>
                    </div>
<br>
    <table width="98%" border="1" style="border-collapse: collapse; border-top-width:1px; border-bottom-width:1px" bordercolor="#333333" cellspacing="0" cellpadding="4" bgcolor="#68758C">   
    <tr align="center">
        <td colspan="3" height="30px" background="<% response.write strImagePath %>forum/top_svar.gif">
<img alt="Fed/Bold" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/bold.gif" onClick="Format('bold')">

<img alt="Skrå/Italic" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/italic.gif" onClick="Format('Italic')">

<img alt="Understreget/Underline" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/underline.gif" onClick="Format('Underline')">           

<img alt="Venstre/Left" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/left.gif" onClick="Format('justifyleft')">

<img alt="Centrer/Center" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/center.gif" onClick="Format('justifycente')">

<img alt="Højre/Right" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/right.gif" onClick="Format('justifyright')">
                       
<img alt="Numereret liste/Ordered List" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/nlist.gif" onClick="Format('insertorderedlist')">

<img alt="Prik liste/Bulleted List" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/blist.gif" onClick="Format('insertunorderedlist')">
           
<img alt="Tekstfarve/Text Color" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/fontcolor.gif" onClick="FontColor()">

<img alt="Tekstbaggrundsfarve/Background Color" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/fontback.gif" onClick="BackColor()">
               
<img alt="Hyperlink" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/link.gif" onClick="Link()">
           
<img alt="Indsæt billede/Image" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/image.gif" onClick="Image()">
           
<img alt="Horisontal linie/Horizontal Rule" onMouseOver="selOn(this)" src="<% response.write strImagePath %>knapper/ikoner/ruler.gif" onClick="Format('inserthorizontalrule')">
        </td>
    </tr>
<tr>
    <td colspan="3" align="center">
<iframe id="editable" style="width: 385px; height: 330px; border: 1px solid #000000; padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; background-color: #FFFFFF"></iframe>
        <textarea name="content" id="content" style="display: none; width: 385px; height: 330px"></textarea>
    </td>
</tr>
<tr align="center">
        <td width="80%" align="left" background="<% response.write strImagePath %>forum/top_svar.gif">Skriftstørrelse:
            <select name="size" onChange="FontSize(this.options[this.selectedIndex].value)">
                <option value="1">XX-Lille</option>
                <option value="2">X-Lille</option>
                <option value="3" selected>Lille</option>
                <option value="4">Mellem</option>
                <option value="5">Stor</option>
                <option value="6">X-Stor</option>
                <option value="7">XX-Stor</option>
            </select>
        </td>
        <td background="<% response.write strImagePath %>forum/top_svar.gif">
            <input type="image" src="<% response.write strImagePath %>knapper/opret.gif">
        </td>
    </tr>
</table>
<br>
<table border="1" width="98%" id="table50" cellpadding="4" style="border-collapse: collapse" bordercolor="#2C2D30" bgcolor="#FED637" background="<% response.write strImagePath %>forum/midt.gif">
                            <tr>
                                <td background="<% response.write strImagePath %>forum/top.gif" height="26">
                                Smilies</td>
                            </tr>
                            <tr>
                                <td height="26%" width="95%" style="border-right-style: none; border-right-width: medium" bgcolor="#69758D">
                                &nbsp;</td>
                            </tr>
                        </table>
</center>
<input type="hidden" name="htmlTraad">
</form>



håber du kan finde hoved og hale i det :)
Avatar billede biohazard_666 Nybegynder
18. april 2006 - 23:19 #8
nå droppede dette for lang tid siden =)
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