Avatar billede nbj1 Praktikant
20. januar 2011 - 09:11 Der er 22 kommentarer

Ændre et javascript

hej nogen der kan fortælle mig hvorfor jeg ikke kan tilføje en funktion i et javascripts ?

<script language="javascript">
    function load() {
        SetActive('motd');
        getError();
        if (<%Value("require_agreement")%>)
            document.getElementById('require_agreement').checked=true;
    }

    function setBold(text) {
        return '<b>' + text + '</b>';
    }

    function setItalic(text) {
        return '<i>' + text + '</i>';
    }

    function setLink(text) {
        return '<a>' + text + '</a>';
    }

    function replaceSelectedText(obj,cbFunc)
    {
        obj.focus();

        if (document.selection) {
            var s = document.selection.createRange();
            if (s.text) {
                eval("s.text="+cbFunc+"(s.text);");
                s.select();
                return true;
            }
        } else if (typeof(obj.selectionStart)=="number") {
            if (obj.selectionStart!=obj.selectionEnd) {
                var start = obj.selectionStart;
                var end = obj.selectionEnd;

                eval("var rs = "+cbFunc+"(obj.value.substr(start,end-start));");
                obj.value = obj.value.substr(0,start)+rs+obj.value.substr(end);
                obj.setSelectionRange(end,end);
            }
            return true;
        }
        return false;
    }

    function GetUpdateList() {
        var UP='';
        var form = window.document.formMain;
        var MP = <%Value("require_agreement")%>;

        if (form.MOTD_start.value != form.MOTD.value) UP = UP + 'MOTD' + ',';
        if (MP != form.require_agreement.checked) UP = UP + 'require_agreement' + ',';
       
        form.UpdatedParams.value = UP;
    }


</script>

<h1>Message of the day</h1>

<FORM name="formMain" id="formMain" method="POST" action="motd.shtml" onSubmit="GetUpdateList();">
<input type="hidden" name="CFS_HANDLER" value="config_handler">
<input type="hidden" name="CFS_HANDLER_ACTION" value="Update">
<input type="hidden" name="UpdatedParams" value="">

<textarea name="MOTD_start" style="display:none;"><%Value("MOTD",1)%></textarea>

<textarea name="MOTD" cols=50 rows=25 style="overflow:auto;"><%Value("MOTD",1)%></textarea></br>

<table class="checkbox">
<tr>
    <td>
        <input type=checkbox name='require_agreement' id='require_agreement' value='on'>Agreement message</br>
    </td>
<td class="br"><img src="i/spc.gif" width="1" height="1" alt=""><br></td>
    <td>
        <a href="#" onClick="replaceSelectedText(document.formMain.MOTD,setBold);">Bold</a> :: <a href="#" onClick="replaceSelectedText(document.formMain.MOTD,setItalic);">Italic</a> :: <a href="#" onClick="replaceSelectedText(document.formMain.MOTD,setLink);">URL</a>
    </td>
</tr>
</table>
<div class="br"></div>
<input type=submit class="button" name="Submit" value="Save changes">
</FORM>

<div id=infoBlock></div>

Jeg har prøvet at tilføje underline

function setUnderline(text) {
        return '<u>' + text + '</u>';
    }
men i formen  skriver den kun <u>noget tekst</u> also tags men understreger ikke
Avatar billede werd Nybegynder
20. januar 2011 - 09:25 #1
Prøv med:
function setUnderline(text) {
  return '<span style="text-decoration:underline;">' + text + '</span>';
}
Avatar billede nbj1 Praktikant
20. januar 2011 - 09:37 #2
nej den skriver kun tags, der understreges ikke :(
Avatar billede nbj1 Praktikant
20. januar 2011 - 09:40 #3
Der er en styles.css fil er det noget med det skal skrives in i den ?
Avatar billede tjens Nybegynder
20. januar 2011 - 09:41 #4
Undskyld, men gør de eksisterende Bold og Italic funktioner ikke det samme? Altså indsætter synlige tags?
Avatar billede werd Nybegynder
20. januar 2011 - 09:41 #5
så er jeg ikke helt med på hva du mener - kan du evt forklare hvordan det færdige resultat vil se ud? Jeg går ud fra at du gerne viol have noget text understreget, men hvor?
Avatar billede nbj1 Praktikant
20. januar 2011 - 09:53 #6
ja lad mig se om jeg kan beskrive det
jeg har en form textarea (shtml)side hvor jeg nu kan markere noget tekst og lave det som bold <b>, italic <i> og set link <a>, som du kan se i koden og jo på shtml siden skriver den kun de tags der skal bruges, men i camfrog server programmet (ved ikke om du kender det) når man joiner er det første man seer er det tekst area som man har lavet i/på shmtl siden.
Avatar billede nbj1 Praktikant
20. januar 2011 - 09:57 #7
eksempel har tilføjet dette i samme forbindelse og det vises fint nok
<a

href="#"
onClick="replaceSelectedText(document.formMain.MOTD,setUnderline);">Underline<

/a>
Avatar billede nbj1 Praktikant
20. januar 2011 - 10:12 #8
jeg har noget i min styles.css som motd referere til og i textarea

body, td, th, select, input, textarea, h1, h2, h3, h4, h5, h6 {
    font-size: 11px;
    font-family: Tahoma, Verdana, sans-serif; 
    color: #393939;
}
har det ikke noget med det at gøre ?
Avatar billede tjens Nybegynder
20. januar 2011 - 10:13 #9
Det du har lavet i din form, er der ikke noget i vejen med.

Men når det skal gemmes på serveren, er der nok en masse validering og filtrering, da man normalt ikke ønsker at brugere kan taste HTML i en form: Hvis der er fejl i HTML kan hele siden fejle.

Derfor skal du først undersøge om dine nye tags bliver gemt på serveren, eller om de forsvinder i ovennævnte validering.
Avatar billede nbj1 Praktikant
20. januar 2011 - 10:23 #10
hvis jeg tilføjer i styles.css
text-decoration:underline;
understreger den alt tekst på shtml siden men desvære ikke i programmet, så noget tyder på jeg ikke kan lave den ændring :(
Avatar billede werd Nybegynder
20. januar 2011 - 10:32 #11
Husk til næste gang at Javascript kategorien er i: Programmering>>Script>>Javascript

Java er noget helt andet :)
Avatar billede werd Nybegynder
20. januar 2011 - 10:40 #12
Jeg ved ikke hvad camfrog er og jeg nærlæser ikke læse flere hundrede liniers kode. Prøv i stedet at forklare hvad du overordnet vil opnå og igen hvad er det du vil have understreget?
Avatar billede nbj1 Praktikant
20. januar 2011 - 14:07 #13
Det jeg vil opnå er som kun at jeg i en form skal kunne bruge understregning af en tekst.
Avatar billede tjens Nybegynder
20. januar 2011 - 15:39 #14
#13 Så simpelt kan du ikke formulere det.

Som jeg skrev i #9, er næste step at se efter om dine nye <U> tags rent faktisk bliver gemt på serveren.

Jeg gætter på, at de bliver fjernet af et script på serveren inden teksten bliver gemt.
Avatar billede nbj1 Praktikant
20. januar 2011 - 15:43 #15
nej når jeg åbner serveren står der hvad jeg har skrevet i shtml siden :  <u>tekst</u>
dermod hvis det er Bold <b>tekst</b> står det i Bold
Avatar billede tjens Nybegynder
20. januar 2011 - 16:36 #16
Det jeg mener er ikke, at du skal gå til forside på dit site, for at se teksten.

Du skal finde ud af hvor det indtastede gemmes på serveren, og så kigge på det med en SQL eller en editor (alt efter om det er database eller fil).
Avatar billede nbj1 Praktikant
20. januar 2011 - 16:53 #17
det jo der problemet er, jeg kan ikke se hvor det gemmes da serveren er en  exe fil med nogle dll filer.
det eneste jeg kan se som jeg tror gemmer skidtet er dette:

<FORM name="formMain" id="formMain" method="POST" action="motd.shtml" onSubmit="GetUpdateList();">
<input type="hidden" name="CFS_HANDLER" value="config_handler">
<input type="hidden" name="CFS_HANDLER_ACTION" value="Update">
<input type="hidden" name="UpdatedParams" value="">

men er ikke sikker.
Avatar billede tjens Nybegynder
20. januar 2011 - 20:04 #18
Den kode du har vist i #0 er incl. serverside kode, så det må være muligt at finde mere kode, som afslører hvordan det gemmes.

Led efter filen "motd.shtml", og inde i den, led efter linier med "MOTD" som tekstarealet hedder.
Avatar billede nbj1 Praktikant
20. januar 2011 - 21:35 #19
dette er hvad derstår i textarea
<textarea name="MOTD_start" style="display:none;"><%Value("MOTD",1)%></textarea>

<textarea name="MOTD" cols=50 rows=25 style="overflow:auto;"><%Value("MOTD",1)%></textarea></br>

jeg kan ikke se andet end det gemmes i dette textarea i motd.shtml
og på en eller anden måde overføres de med CFS_handler til programmet.

function GetUpdateList() {
        var UP='';
        var form = window.document.formMain;
        var MP = <%Value("require_agreement")%>;

        if (form.MOTD_start.value != form.MOTD.value) UP = UP + 'MOTD' + ',';
        if (MP != form.require_agreement.checked) UP = UP + 'require_agreement' + ',';
       
        form.UpdatedParams.value = UP;
    }
Avatar billede tjens Nybegynder
20. januar 2011 - 23:02 #20
Det tyder på at CamfrogServer's indbyggede webserver selv tager hånd om at gemme det indtastede, og dermed kan vi ikke se koden der gør det.

Eneste alternativ er at finde teksten, direkte på disken.

Så vidt jeg kan se, skal filen hedde "motd" uden nogen form for endelse. Hvis du kan finde sådan en fil på serveren, så prøv at åbne den med en teksteditor.
Avatar billede nbj1 Praktikant
21. januar 2011 - 06:26 #21
tjnes jeg tror du har ret i din formodning om at camfrogseren har in inbygget webserver og dermed er alt gemt i exe filen som jeg tidliger har nævn, ikk e at jeg var sikker doh, serveren er bygget up i java eller andet smart.
men er html delen ikke standart også, hvis man bruger understegning i programmet andre steder man bruger fonts ja alt som man normalt bruger, så er det vel et eller adet sted på/i min kodning af scriptet det går galdt, som jeg har vist i css filen bruges der text-decoration:underline;

eks

body, td, th, select, input, textarea, h1, h2, h3, h4, h5, h6 {
    font-size: 11px;
    font-family: Tahoma, Verdana, sans-serif; 
    color: #393939;
}
hvis jeg tilføjer text-decoration:underline;
bliver alt tekst understreget i dette textarea, så der kan understreges.
Avatar billede nbj1 Praktikant
21. januar 2011 - 06:28 #22
på serveren/clienten kan man bruge komandoen direkte til at tilføje tekst med /SETOPT motd MOTD text
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

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