16. juli 2007 - 18:37Der er
21 kommentarer og 2 løsninger
Ændre tags i iframe editor
Hej allesammen.
Jeg har et lille problem som jeg bare ikke kan finde ud af. I min wysiwyg Editor kan jeg indsætte links, billeder og det hele, men jeg ville meget gerne kunne ændre parameterne når de er indsat. f.eks. vil jeg gerne kunne ændre href adressen i et link når jeg klikker på linket.
jeg har prøvet alverdens ting men jeg kan ikke engang få fat i nodeName osv. Nogen der har et foreslag til hvordan det kan lade sig gøre??
- men hvis du ikke er stærk i JavaScript, kan det undre, du ikke vælger en færdig editor. Hvis det er for at lære JavaScript, burde du måske vælge et andet projekt med mere standardiseret JavaScript ... noget, du kunne lære noget mere brugbart af =)
Jeg har skam masser af forstand på programmering, har bare aldrig brugt javascript til andet end til at tjekke tekst felter er udfyldt korrekt, så problemet er ikke at projektet er for stort for mig, elsker udfordringer. Grunden til at jeg ikke vælger en af de gratis editors rundt omkring er at jeg er ved at få et føl af at jeg ikke rigtig kan ændre dem til det jeg vil have. Det er for besværligt. Og allerede er jeg da kommet rimeligt langt med min editor, så nu stopper jeg ikke.
Tak for linksne olebole, har dog kigget grundigt på dem, og kan stadig ikke finde noget der gør at jeg kan få fat i et tag i mit dokument.
Hvis ikke din programeringserfaring dækker JavaScript, DOM og indgående kendskab til de forskellige browseres særheder, er den ikke til stor hjælp her. Det, vi taler om, er faktisk kun i ringe grad JavaScript, men derimod proprietære udvidelser for hver enkelt browser.
Tro mig (og windscape): Det er langt lettere at ombygge en eksisterende editor - og nej, det lyder absolut ikke, somom du er kommet langt (og synet af din kode undebygger stærkt denne tese). Faktisk er der ikke noget af din kode, der er realistisk at bruge i en editor ;o)
Forstår nu ikke helt hvad i mener. Kan godt være at min kode ikke er den mest korrekte i verden, men den virker da umiddelbart. Det ville være mig en stor hjælp hvis i kunne komme med nogle eksempler på noget der ikke virker.
Og ja, indrømmer at min viden til javascript og Dom er manglende, men der er jo kun en måde at lære det på, og det er at prøve.
Hvad forventes der af en editor siden min ikke virker på nogen måde? for mig skal jeg jo bare kunne ændre noget tekst og kunne se det live. Og det kan jeg, og da det kun er til mig selv, så passer den jo mit behov. Så lidt mere konstruktiv kritik kunne være dejligt.
Den kritik, du har fået, har været yderst positiv og konstruktiv - ikke mindst din kode taget i betragtning. Jeg lagde de to links, så du kunne lære det fra bunden - herunder at 'highlighting' af knapper - men det kræver, at du naturligvis også undersøger de links, der på MS' sider står under "See also".
Det, du efterspørger er - uanset, om du selv kan se det eller ej - en tutorial af en størrelse, der er helt urealistisk for en Eksperten-tråd.
Du lærer ikke noget særligt om JavaScript ved at skrive en editor. Det handler som sagt primært om proprietære browserudvidelser - men en god JS-indsigt er til gengæld en forudsætning for at kunne sætte sig ind i og anvende disse udvidelser.
Vi har på intet tidspunkt skrevet, at din editor ikke virker. For en programmør er det bare ikke et kvalitetsstempel i sig selv. Krig, narko og fri hastighed i byerne er således fantastisk virksomt mod overbefolkningen - men et yderst fattigt værktøj til opnåelse af målet.
De kodere, som her på sitet kan finde ud af at skrive en sådan editor, får du ikke til at skrive dårlig kode, selvom det 'bare er til mig selv'. Det tager vi kodning alt for alvorligt til - og dårlig kode i eksorbitante mængder er i forvejen WWW's største problem. Desuden er det i et Eksperten-spørgsmål som dette langtfra kun spørgeren, der skal hjælpes. Det er også de 20 andre, der læser anonymt med - og de hundreder som ad åre vil komme til at læse tråden, når de søger på emnet.
Jeg siger skam tak for de links du har givet mig. Og ja jeg kan kun give dig ret i langt det meste du siger, bortset fra konstruktiv kritik.
Ville bare gerne have et eksempel på hvorfor min kode er så dårlig, og hvad jeg burde læse for at gøre den bedre. Har kigget på closures som windscape skrev og retter på livet løs. Men hvad der er rigtigt og hvad der er forkert er der så mange meninger om.
Jeg beder heller ikke om at nogen skal skrive en guide til mig, jeg ville bare ledes i retningen af hvad jeg skulle kigge på, og det gjorde du da, men bare ikke noget jeg rigtig har kunne bruge, for tror ikke helt du forstår min problem stilling. Tror forresten også at jeg har fundet en løsning, som jeg tester lige nu.
Og alt det med at alle lærer af min kode, det er rigtigt, jeg lærer rigtig meget herinde fra, faktisk er det eksperten der har lært mig det meste af min rædselsfulde kode... Men et sted bliver jeg nød til at starte, og er ked af hvis gode programmøre ikke vil hjælpe nye programmøre som mig selv fordi vi laver "grimme" koder. Læser på livet løs i bøger og på nettet, så du skal ikke fortælle mig at jeg ikke undersøger tingene!
Men så skal jeg nok lade min dårlige kode ligge og komme tilbage engang når jeg er prof :S
Håber ikke jeg er for grov. Ved godt at i hjælper alt hvad i kan og påskynder det virkelig. Så håber ikke i bliver fornærmet. Min kode er grim, det indrømmede jeg fra starten. Så nu prøver jeg at omskrive min kode, kan være jeg skriver igen hvis jeg kommer i problemer med de nye metoder..
Du er ikke spor grov. Det er fint, du forstår, det ikke er dig, der bliver kritiseret, men din kode :)
Kritikken er nok så konstruktiv, som den kan blive. En rich-text editor er som sagt et _meget_ stort emne at dække fra bunden - og det er nok, hvad der er brug for.
Jeg er helt enig i, at man skal begynde et sted, hvilket da også er grunden til, jeg gennem mine snart otte år på Eksperten har besvaret over 3.000 spørgsmål og deltaget i fire-fem gange så mange. Problemet er bare, at det ikke er et projekt, du lærer ret meget JavaScript af, da det ikke indebærer særlig meget JS.
Closure-problemer har du ikke noget særligt af i koden. Jeg tror, det var en lidt inside kommentar fra windscape til mig, da jeg på det seneste har rettet folks opmærksomhed på IE's problemer med garbage-collection (herunder circular references og closures) i forbindelse med AJAX og OOP. Nu objektorienterer du godtnok ikke din kode, men det ville ellers være oplagt (ikke mindst i forbindelse med knapperne). Jeg tror, det var den udløsende faktor for dén bemærkning =)
Af dårligheder kan specielt nævnes din brug af try/catch. Den er udtryk for dårlig kodestil i enhver sprogsammenhæng. try/catch bruges yderst sjældent og kun i situationer, hvor koderen på forhånd ingen chance har for at vide, om en given fremgangsmåde er mulig. I stedet for f.eks. i din init-funktion at bruge try/catch som 'panik-løsning', bør du undersøge, hvad den aktuelle browser understøtter - og efterfølgende bruge det. Der er adskilligt mere, men det hører ikke direkte under JavaScript.
Derudover er det noget vrøvl at skrive denne type applikation som XHTML. Nu bruger du godtnok kun version 1.0-Transitional, som i sig selv er noget vås (en eksperimentel standard uden nogen somhelst forskelle fra HTML - med undtagelse af nogle ligegyldige kosmetiske småting).
Langt mere alvorligt er det, når windscape forsøger at skrive XHTML1.1 samtidig med, at hele hans script er komplet inkompatibelt med XHTML - og at han iøvrigt server dokumentet helt forkert. Så er der ikke ret meget, der kan være mere ligegyldigt, end om hans markup-kode validerer! Hvis browserne overholdt blot en anelse af XHTML-standarderne, ville hans dokument aldrig loade - men browseren gå ned med et hult suk og en XML-fejl =)
Hov, havde ikke opdaget at jeg brugte en gammel xhtml template på den side, det er en fejl.
Alt min RTE source er udviklet til HTML4 :) Specielt fordi at MIDAS overhovedet ikke er udviklet til xhtml, den producere udelukkende html4 html. Men nu er den online udgave også snart ½ år gammel , jeg har nogle nyere versioner liggende.
Men som OleBole har pointeret et par gange , er browserene specielt det store problem. IE volder mig stadig store problemer, og jeg tør slet ikke tænkte på Opera/Safari.
Derudover skal det måske siges at min RichTextEditor er en omskrivning af et XBL module (til XUL,Firefox Extension), hvilket var den oprindelige ide (som blev færdiggjort, meget nemt).
HTML var således en yderlig udvidelse , som desværre var meget meget sværere.
Tusind tak ole, det kalder jeg konstruktiv kritik! Jeg ved godt at sådan noget som catch og try er noget møj.. men har nok været en smule doven, er igang med en kæmpe omskrivning, her vil jeg også bruge oop, så lader alt andet lægge lidt nu før jeg har fået skrevet en ordentlig kerne. Kan være jeg skal bruge en smule hjælp til omskrivningen lidt senere.
Men det med xhtml er egentlig bare pga. jeg tit laver design i dreamviewer og så koder jeg i jedit, så det havde jeg egentlig bare glemt at fjerne. Men da jeg så fjernede det så virkede intet i mit dokument. Så har vel brugt de standarder som xhtml har. Har også læst mig lidt til at man burde bruge xhtml så derfor gør jeg det... men ved egentlig ikke om det er bedre...
Men kan i to ikke svare? så kan i jo dele de points der er! og tak for en lille opsang, kan godt se nu at det nok ikke var så godt som jeg håbede. Men har nu stadig stor tro på at det nok skal blive godt!
Selvtak. Jeg har selv siddet i udviklermiljøer og fået gennemtæsket min koder (læs: børn - hehe), men 'bank og stryg' har hjulpet mig og mine kodeevner enormt - omend det altid er svært at se i situationen ;o)
Vedr. OOP og closures, som vi talte om tidligere, lægger jeg nogle artikler om emnet op på www.dengodekode.dk lidt senere på eftersommeren og hen over efteråret. Der vil også komme en del artikler om JavaScript, DOM og AJAX ... og forhåbentlig en masse andet sjovt. Det er på tide, der kommer et artikel/tutorial-site, hvor fejlprocenten er under 70 ;oD
PS: Koden i min 'markup-laundry' er ikke optimal. Den var oprindelig et quick 'n' dirty projekt i cowboy-kode - og er endnu ikke blevet gennemskrevet ordentligt.
Eneste grund til, den kom op nu, er, at den anden bruger stod og skulle bruge noget til at uploade sin kode med fra en editor - og så kunne koden ligeså godt blive rettet/renset lidt op =)
Det lyder super!! vil følge med på dit site så! Jeg vil da se lidt på din kode, kan jo være at man får brug for noget af det. Og en anden gang er du skam velkommen til at give mig et par på hovedet når jeg på et tidspunkt kommer igen med mine nye forsøg :)
Venter lige på windscape og ser om han også vil lægge et svar selvom ingen af jer rigtig svarede på mit oprindelige spørgsmål, så har i begge to gidet at deltage, det skal i da have kredit for! :)
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.