Avatar billede perj Nybegynder
13. november 2000 - 15:24 Der er 5 kommentarer og
1 løsning

Java hvordan............

Hvordan får jeg dette script til at søge i et andet frame - men på samme side (siden består af 3 frames).
Avatar billede perj Nybegynder
13. november 2000 - 15:25 #1
Nååh ja.

<script language=\"JavaScript\">

var NS4 = (document.layers); // Which browser?
var IE4 = (document.all);

var win = window; // window to search.
var n = 0;

function findInPage(str) {

var txt, i, found;

if (str == \"\")
return false;

// Find next occurance of the given string on the page, wrap around to the
// start of the page if necessary.

if (NS4) {

// Look for match starting at the current point. If not found, rewind
// back to the first match.

if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;

// If not found in either direction, give message.

if (n == 0)
alert(\"Not found.\");
}

if (IE4) {
txt = win.document.body.createTextRange();

// Find the nth match from the top of the page.

for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart(\"character\", 1);
txt.moveEnd(\"textedit\");
}

// If found, mark it and scroll it into view.

if (found) {
txt.moveStart(\"character\", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}

// Otherwise, start over at the top of the page and find first match.

else {
if (n > 0) {
n = 0;
findInPage(str);
}

// Not found anywhere, give message.

else
alert(\"Not found.\");
}
}

return false;
}

</script>

<form name=\"search\" onSubmit=\"return findInPage(this.string.value);\">
<font size=3><input name=\"string\" type=\"text\" size=15 onChange=\"n = 0;\"></font>
<input type=\"submit\" value=\"Find\">
</form>
Avatar billede el_gnu Nybegynder
13. november 2000 - 15:32 #2
<script language=\"JavaScript\">

var NS4 = (document.layers); // Which browser?
var IE4 = (document.all);

var n = 0;

function findInPage(str, frame) {

var win = parent.frames[frame]; // window to search.

var txt, i, found;

if (str == \"\")
return false;

// Find next occurance of the given string on the page, wrap around to the
// start of the page if necessary.

if (NS4) {

// Look for match starting at the current point. If not found, rewind
// back to the first match.

if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;

// If not found in either direction, give message.

if (n == 0)
alert(\"Not found.\");
}

if (IE4) {
txt = win.document.body.createTextRange();

// Find the nth match from the top of the page.

for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart(\"character\", 1);
txt.moveEnd(\"textedit\");
}

// If found, mark it and scroll it into view.

if (found) {
txt.moveStart(\"character\", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}

// Otherwise, start over at the top of the page and find first match.

else {
if (n > 0) {
n = 0;
findInPage(str);
}

// Not found anywhere, give message.

else
alert(\"Not found.\");
}
}

return false;
}

</script>

<form name=\"search\" onSubmit=\"return findInPage(this.string.value, \'framenavn\');\">
<font size=3><input name=\"string\" type=\"text\" size=15 onChange=\"n = 0;\"></font>
<input type=\"submit\" value=\"Find\">
</form>


I formen skal du bare ændre framenavn til navnet på din frame
Avatar billede perj Nybegynder
13. november 2000 - 16:14 #3
-->>el_gnu.
Det eneste jeg har gjort, er at ændre de sidste 3 linier som du ser her, men nu skriver den: Not found, og andet sker der ikke.

<form name=\"search\" onSubmit=\"return findInPage(this.string.value, \'jubel2\');\">
<font size=3><input name=\"string\" type=\"text\" size=15 onChange=\"n = 0;\"></font>
<input type=\"submit\" value=\"Find\">
</form>
Avatar billede el_gnu Nybegynder
13. november 2000 - 16:21 #4
ahh, men du skal også bruge det script som jeg har postet her :-)

Altså du skal tage koden fra mit foregående indlæg og så ændre framenavn til jubel2
Avatar billede perj Nybegynder
13. november 2000 - 18:44 #5
Det kan jeg sgu ikke få til at virke, men måske har vi misforstået hinanden, eller jeg har ikke udtrykt mig klart nok:-).
Prøver derfor på en anden måde. Forestil dig at du kun har 2 frame - foroven og forneden. Foroven har du et søgefeldt. Når man skriver et søgeord i feltet, skal den finde det søgte ord i det nederste frame.;)
Avatar billede el_gnu Nybegynder
14. november 2000 - 16:11 #6
perj => prøv med dette script i øveste frame:

<script language=\"JavaScript\">

var NS4 = (document.layers); // Which browser?
var IE4 = (document.all);

var n = 0;

function findInPage(str, frame) {

var win = parent.frames[frame]; // window to search.

var txt, i, found;

if (str == \"\")
return false;

// Find next occurance of the given string on the page, wrap around to the
// start of the page if necessary.

if (NS4) {

// Look for match starting at the current point. If not found, rewind
// back to the first match.

if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;

// If not found in either direction, give message.

if (n == 0)
alert(\"Not found.\");
}

if (IE4) {
txt = win.document.body.createTextRange();

// Find the nth match from the top of the page.

for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart(\"character\", 1);
txt.moveEnd(\"textedit\");
}

// If found, mark it and scroll it into view.

if (found) {
txt.moveStart(\"character\", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}

// Otherwise, start over at the top of the page and find first match.

else {
if (n > 0) {
n = 0;
findInPage(str);
}

// Not found anywhere, give message.

else
alert(\"Not found.\");
}
}

return false;
}

</script>


og så skal din form se sådan her ud:

<form name=\"search\" onSubmit=\"return findInPage(this.string.value, 1);\">
<font size=3><input name=\"string\" type=\"text\" size=15 onChange=\"n = 0;\"></font>
<input type=\"submit\" value=\"Find\">
</form>


Men dette virker KUN hvis der er 2 frames!
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