Avatar billede styrk Nybegynder
13. maj 2008 - 20:14 Der er 16 kommentarer og
1 løsning

editor, fra normal til oop

Hejsa.

Jeg sidder og forsøger at lære lidt ang. oop i javascript, og i den forbindelse har jeg fundt nogle artikler på nettet, en generel om oop i javascript også en med en meget simpel wysiwyg editor,- jeg forsøger så at omskrive den normale kode til oop.

Men, - nu har jeg et problem at FF ikke vil aktivere min iframe så jg kan skrive i den, det virker fint nok i IE.

Jeg får ikke nogen fejl i FF i error konsollen så kan ik lige se mig af det.

Javascript koden er her;

function styrkEditor()
{
    this.id = "content";
   
    this.init = function()
    {
        if(document.designMode && document.getElementById)
        {
            this.editor = document.getElementById(this.id).contentWindow;
   
            if(navigator.userAgent.toLowerCase().indexOf("msie") != -1)
            {
                this.editor.document.designMode = "on";
            }
            else
            {
                document.getElementById(this.id).contentDocument.designMode = "on";
            }
        }
        else
        {
            alert('Din browser understøtter ikke WYSIWYG-editoren!');
            return false;
        }

    }
}

/// html, iframe osv.


var editor = new styrkEditor();
editor.init();

Er er nogen som kan forklare mig hvad der går galt? Jeg har prøvet at lave en alert som udskriver min variabel, this.editor.designMode og den siger at den er "On", hvilket den skal være men FF ignorere det.

Mvh. Rasmus
Avatar billede erikjacobsen Ekspert
13. maj 2008 - 20:46 #1
Tjah, har du en iframe med id "content" ? Og hvad siger FFs fejlkonsol?
Avatar billede styrk Nybegynder
13. maj 2008 - 20:49 #2
<iframe name="content" id="content"></iframe>

og som sagt så er der ingen fejl i fejl-konsollen ;-)
Avatar billede erikjacobsen Ekspert
13. maj 2008 - 20:55 #3
Som sagt, ja ;)

Giver det her ikke "On" i begge browsere?

  var editor = new styrkEditor();
  editor.init();
  alert(editor.editor.document.designMode);
Avatar billede styrk Nybegynder
13. maj 2008 - 21:03 #4
yes, giver on i begge browsere.
Avatar billede styrk Nybegynder
13. maj 2008 - 21:21 #5
men kan stadigvæk ikke skrive i iframen i ff :s
Avatar billede erikjacobsen Ekspert
13. maj 2008 - 21:36 #6
Hmm, det kan jeg egentlig godt...
Avatar billede erikjacobsen Ekspert
13. maj 2008 - 21:37 #7
Avatar billede styrk Nybegynder
14. maj 2008 - 07:03 #8
ja det var underligt.

Det må være måden jeg starter editoren på der gør at FF ikke vil være med, undskyld jeg poster en hel kode men det er bare så du kan se ;-)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>youtype editor</title>
<script language="javascript" type="text/javascript">
<!--

function styrkEditor()
{
    this.id = "content";
   
    this.init = function()
    {
        if(document.designMode && document.getElementById)
        {
            this.editor = document.getElementById(this.id).contentWindow;
   
            if(navigator.userAgent.toLowerCase().indexOf("msie") != -1)
            {
                this.editor.document.designMode = "on";
            }
            else
            {
                document.getElementById(this.id).contentDocument.designMode = "on";
            }
        }
        else
        {
            alert('Din browser understøtter ikke WYSIWYG-editoren!');
            return false;
        }

    }
       
    this.execBold = function()
    {
        this.editor.document.execCommand("Bold", false, "");
    }
   
    this.execItalic = function()
    {
        this.editor.document.execCommand("Italic", false, "");
    }
       
    this.execUnderline = function()
    {
        this.editor.document.execCommand("Underline", false, "");
    }
   
    this.execLink = function()
    {
        this.editor.document.execCommand("CreateLink");
    }
}

-->
</script>
</head>
<h1>editor</h1>
<button onclick='editor.execBold();'><b>B</b></button>
<button onclick='editor.execItalic();'><i>I</i></button>
<button onclick='editor.execUnderline();'><u>U</u></button>
<button onclick='editor.execLink();'>link</button>
<br />
<iframe name="content" id="content"></iframe>
<script language="javascript" type="text/javascript">
  var editor = new styrkEditor();
  editor.init();
  alert(editor.editor.document.designMode);
</script>
<body>
</body>
</html>
Avatar billede styrk Nybegynder
14. maj 2008 - 07:07 #9
:P jeg har placeret min kode uden for body-tagget, ser lidt dumt ud. Har rettet det men det ændrede ikke noget. Æv :-)
Avatar billede erikjacobsen Ekspert
14. maj 2008 - 08:32 #10
Forskellen er måske at jeg laver initialiseringen på onload.
Avatar billede olebole Juniormester
14. maj 2008 - 15:29 #11
<ole>

styrk >> Det virker, somom du ikke helt har forstået, hvad OOP er. Der er f.eks. ikke megen fidus ved at have et objekt, der kun kan oprettes én instans af. Der er vel nærmere tale om procedural programmering, klædt ud til fest  =)

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
14. maj 2008 - 15:36 #12
Der er vel forhåbentlig kun een instans af OleBole-klassen ... ;)

Skal vi kløve ord og forkortelser, så er det mere OBP, Objekt Baseret Programmering, der fremvises her. Men det kan også have sin berettigelse.

Hmm, endnu en dag uden kryds i kalenderen.
Avatar billede styrk Nybegynder
14. maj 2008 - 16:14 #13
ole, det er jo også kun noget jeg sidder og leger med ;-) Jeg kan vel godt oprette flere instancer, id'et er jo bare hardcoded indtil videre (?) :o

men, erik - smid et svar, så får du points.
Avatar billede erikjacobsen Ekspert
14. maj 2008 - 16:17 #14
Jeg samler slet ikke på point, tak.
Avatar billede erikjacobsen Ekspert
14. maj 2008 - 16:19 #15
Og skal vi have fat i ord-motorsaven, så:

"Der er f.eks. ikke megen fidus ved at have et objekt, der kun kan oprettes én instans af."  ->  http://en.wikipedia.org/wiki/Singleton_pattern

(kedelig onsdag ind til videre - godt man har eksperten.dk, haha)
Avatar billede olebole Juniormester
14. maj 2008 - 16:30 #16
Erik >> En prototyped version af OleBole-klassen er den senere så kendte ØlleBølle-klasse (somme tider aliazed med Øl&Bølle-klassen). Derudover er det meget snart 30 år siden, den første prototype af OleBole-klassen kom på banen ... og snart 16 år siden, den seneste instans så dagens lys  ;o)

"Der er f.eks. ikke megen fidus ved at have et objekt, der kun kan oprettes én instans af." >> En Singleton er næppe det, man først tænker på, når man siger 'OOP' i samme sætning som 'JavaScript'. Der stod faktisk heller ikke 'ingen fidus', men 'ikke megen fidus'  ;o)
Avatar billede styrk Nybegynder
21. maj 2008 - 21:05 #17
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