[JavaScript] Zoekmachine + frames ?

Pagina: 1
Acties:

  • blaaat945
  • Registratie: November 2001
  • Laatst online: 00:11
Voor me stage opdracht moet ik een intranet site bouwen, bepaalde onderdelen die op de site moeten komen bestaan al of moeten nog gebouwd worden.

Zo hebben ze al een (interne) telefoonlijst, de lijst is vrij groot. Om een persoon te zoeken word er nu gebruik gemaakt van de zoekfunctie (ctrl+f). Maar ze willen dat er een zoekmachine op de site zelf komt.

Nu heb ik zelf al een zoekmachine gevonden die de zelfde zoekfunctie heeft als ctrl+f. :) Maar nu komt het probleem, de site bestaat uit 2 frames een 'top' en een 'onder' frame.

De zoekmachine komt in het bovenste frame, maar hij moete dan in het onderste frame gaan zoeken, maar hij zoekt alleen maar in het bovenste frame. Wie kan mij hier mee helpen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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;
}

En om de zoekenmachine in de telefoonlijst zelf in te bouwen is geen optie ;(

......


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Je kunt deze functie toch in het andere frame zetten? Kun je hem vandaaruit aanroepen.

Anders moet je in de functie alle referenties aan win vervangen met het juiste frame..

  • blaaat945
  • Registratie: November 2001
  • Laatst online: 00:11
Thanx ik ga het gelijk uit proberen :)

Dan is het eigenlijk best simpel.. |:(

......


  • blaaat945
  • Registratie: November 2001
  • Laatst online: 00:11
sorry Bosmonster maar het werkt niet om gewoon de 'win' te veranderen naar het framenaam ;(

of moet ik nog wat anders doen :?

......


Verwijderd

Dat werkt wel, ik heab datzelfde scriptje ook gebruikt:

var win = parent.<framename>.window

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

ow je hebt gelijk.. win wordt gewoon bovenin gedeclareerd.. die kun je vervangen door dax' regeltje.

hoewel de "parent" wel een beetje afhangt van je frame-opbouw. Mogelijk werkt bij jou "top" beter.

  • blaaat945
  • Registratie: November 2001
  • Laatst online: 00:11
Het is gelukt met parent.bottum.window :)

Bedankt daxx909 en Bosmonster voor jullie hulp!

......

Pagina: 1