Avatar billede thaman65 Nybegynder
27. december 2002 - 19:47 Der er 10 kommentarer og
1 løsning

Hvor virker dette ikke? (søg erstat)

Problemet her er at det ikke markere teksten i iView nå man søger. Hvorfor gør den ikke det.

Lige lidt kode:

function Find(showdialog){

var display="visible";
if(showdialog==false) display="hidden";
find_dialog.style.visibility=display;
if(showdialog!=false) document.find.findwhat.focus();
}

function FindIt(str, replacestr, newstr){

if(str==""){
alert("Skriv tekst for at søge");
document.find.findwhat.focus();
return;
}
txt = iView.document.body.createTextRange();
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart("character", 1);
txt.moveEnd("textedit");
}
if(found) {
txt.moveStart("character", -1);
txt.findText(str);
if(replacestr) txt.text=newstr;
txt.select();
txt.scrollIntoView();
n++;
}
else {
if (n > 0) {
window.alert("Strengen blev ikke fundet");
n=0;
}
else
window.alert("\"" + str + "\" blev ikke fundet i dokumentet.");
}
}


<div contentEditable="true" id="iView" name="iView" style="border-style: solid; border-width: 1px; border-color: #000000; background-color: #FFFFFF; padding-left: 3px; padding-right: 3px; padding-top: 3px; padding-bottom: 3px; width: 550px; height: 400px;">
<%= strFileContents %>
</div>


<div id="find_dialog" style="position: absolute; top: 243; left: 138; visibility: hidden; width: 520; height: 141">
<table border="0" width="300" cellspacing="0" cellpadding="3" style="border-style: outset; border-width: 1px">
  <tr>
    <td bgcolor="#CCCCCC"><font size="2" color="#000000">&nbsp;<font face="Arial"><b>Find
      i dokumentet</b></font></font></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF">
      <form name="find">
        <p>
        &nbsp; <b><font face="Arial"size="2">Find: </font></b><input type="text" name="findwhat" size="34" class="textbox_skin"><br>
        &nbsp;<input type="checkbox" name="replacetext" onClick="this.form.newtext.disabled=!this.form.replacetext.checked;"value="ON"> <font face="Arial" size="2">Erstat
        med:</font> <input type="text" name="newtext" size="20" class="textbox_skin" disabled></p>
        <p>&nbsp; <input type="button" value="    Find næste    " onClick="FindIt(this.form.findwhat.value, this.form.replacetext.checked, this.form.newtext.value);" name="findtext" class="button_skin">&nbsp; <input type="button" value="    Cancel    " onClick="FindInPage(false);" name="cancelfind" class="button_skin"><br>        </p>
      </form>
    </td>
  </tr>
</table>
</div>


vinduet popper op og hvis jeg ikke skriver noget i søg feldtet udføres alert(). Hvad er der galt. :)
Avatar billede Slettet bruger
29. december 2002 - 16:26 #1
Hvad er det præcist, funktionen skal kunne?
Avatar billede thaman65 Nybegynder
02. januar 2003 - 15:57 #2
Den skal kunne søge og erstatte.
Avatar billede pelkjaer Nybegynder
02. januar 2003 - 16:07 #3
Avatar billede thaman65 Nybegynder
02. januar 2003 - 16:09 #4
Hvordan får jeg så det til at opdatere i iView? Navnet på min div that is :)
Avatar billede thaman65 Nybegynder
02. januar 2003 - 16:51 #5
Jeg vil gerne have det til at virke sammen med den <div id="find_dialog"> jeg allerede har lavet og den skal også gerne opdatere i min <div id="iView">. hvordan får jeg denne http://javascript.internet.com/messages/find-in-page.html til det?
Avatar billede Slettet bruger
02. januar 2003 - 17:26 #6
For at erstatte:

function erstat(ord, ord2, matchCase) {
str = (matchCase) ? "i" : "";
eval("iView.document.body.innerText = iView.document.body.innerText.replace(/" ord + "/g" + str + ", '" + ord2 + "');");
}

"ord" er ordet, der skal erstattes, "ord2" er erstatningsordet og "matchCase" er en boolean, der bestemmer, om processen skal være case-sensitiv.
Avatar billede thaman65 Nybegynder
02. januar 2003 - 20:03 #7
Er der ikke en måde du kan få det til at passe sammen med det jeg har i forvejen? :) Det ville gøre det meget nemmere for mig, da jeg ikke er helt så hardcore til javascript.
Avatar billede Slettet bruger
03. januar 2003 - 11:28 #8
Hvis du smed et link til din side, får jeg mig muligvis taget sammen til at rette det til... :)
Avatar billede thaman65 Nybegynder
03. januar 2003 - 13:39 #9
Jeg har det desværre ikke liggende på en side :( Men det ovenstående kode er det jeg har + lidt mere selvfølgelig, men det er helt andre funktioner. Det skal lige siges at det skal bruges til en online wysiwyg editor.
Avatar billede Slettet bruger
05. januar 2003 - 12:49 #10
Det kunne jeg næsten gætte mig til... :)
Men du må jo have det liggende som en HTML-side. Bare opret dig på friserverplads.dk eller whitehat.dk og upload det!
Avatar billede thaman65 Nybegynder
10. januar 2003 - 22:25 #11
Jeg fandt selv ud af det. Det var bare variablen n der ikke var defineret. I denne linie:
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {

var n=0;
var det eneste der skulle skrives :)

Det er sq træls når det bare er sådan en lille ting. :) men sådan er det jo :D
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