Toon posts:

[javascript] Link zoeken en openen (met frames)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe kan ik nu door middel van een javascriptje naar een url gaan van een ander frame (op dezelfde pagina) die een bepaald woord bevat (die je kan ingeven via een prompt)?

Hoe zou ik dat realiseren?

1) Frames maken (kan ik)

2) in het hoofdframe een javascript om een bepaald woord te zoeken in het benedenframe (geen idee hoe...)

3) in hetzelfde frame code toevoegen om de url (die dat woord bevat) in een variabele te plaatsen

4) in hetzelfde frame onderstaande code toevoegen
top.document.frames['benedenframe'].location.href = devariabelevanhierboven;


Dus 2) en 3) weet ik niet. Iemand een idee?

Verwijderd

vrij lompe methode:
JavaScript:
1
window.frames['benedenframe'].document.body.innerHTML.indexOf('woord');


- je framenamen zijn zo niet erg handig
- frames moet je sowieso nog maar eens twee keer over denken (vaak niet nuttig)
- frames collection is een property van window, niet van document

Verwijderd

Topicstarter
OK, dit heb ik tot nu toe.


dit


<html>
<body>

<script language="Javascript">
function zoekfunctie(){
site = prompt ("Welk site wilt u doorzoeken?","")
parent.benedenframe.location=site

woord = prompt ("Welk woord zoekt u?","")
url = window.frames['benedenframe'].document.body.innerHTML.indexOf('woord');


parent.benedenframe.location=url
}
</script>
<form>
<input type="button" value="Zoek" onClick="zoekfunctie()">
</form>
</body>
</html>



en dit (<<< test hier)


<html>
<frameset rows="8%, *">

<FRAME SRC="bovenframe.html" NAME=bovenframe align=center>
<FRAME SRC="about:blank" NAME=benedenframe>

</frameset>
</body>
</html>



maar het werkt nog steeds niet. Het probleem zit em bij het schuingedrukte gedeelte denk ik...

[ Voor 135% gewijzigd door Verwijderd op 19-01-2005 00:39 ]


Verwijderd

vanuit het bovenframe is het natuurlijk parent.frames['benedenframe'].document etc
vergeet verder de puntkomma's niet

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Zet dit stukje:
JavaScript:
1
url = window.frames['benedenframe'].document.body.innerHTML.indexOf('woord');
om naar:
JavaScript:
1
url = parent.frames['benedenframe'].document.body.innerHTML.indexOf(woord);


en inderdaad zoals mophor al zei: vergeet de ; tekens niet.

[ Voor 19% gewijzigd door eghie op 19-01-2005 09:47 ]


Verwijderd

Topicstarter
ik heb het aangepast, maar blijkbaar moet er toch nog een foutje in zitten...

ziehier voor index.html
en hier het bovenframe.html

Voor alle duidelijkheid: het is de bedoeling dat je naar een link gaat (die een bepaald woord bevat) van een bepaalde site (indien die link aanwezig is natuurlijk)


(PS: waarom moeten die puntkomma's er staan? het werkt toch ook zonder d8 ik?)

[ Voor 35% gewijzigd door Verwijderd op 19-01-2005 12:01 ]


Verwijderd

http://www.devguru.com/Te...ckref/string_indexof.html

en nu zelf verder debuggen hoor

of misschien is het wel handiger te werken met een regEx in dit geval: iets als:
'<a href="(.*?)".*?>.*?'+woord+'.*?</a>';

[ Voor 38% gewijzigd door Verwijderd op 19-01-2005 12:10 ]


Verwijderd

Topicstarter
het innerhtml.indexof commando toont dus de plaats van een bepaald woord (met een getal)
Maar kheb er echt geen idee van hoe het nu verder zou moeten.

En die RegEX ziet er ook nog "begrijpelijk" uit maar kheb er geen idee van hoe hieraan te beginnen.
Moet dit ook tussen de "javascript tags" staan? of is dit een heel andere "programmeertaal"?

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Verwijderd schreef op woensdag 19 januari 2005 @ 11:57:
...

(PS: waarom moeten die puntkomma's er staan? het werkt toch ook zonder d8 ik?)
puntkomma's hoort bij Javascript, zo is Javascript ook hoofdletter gevoelig. Zo is Javascript gewoon.
Verwijderd schreef op woensdag 19 januari 2005 @ 13:55:
het innerhtml.indexof commando toont dus de plaats van een bepaald woord (met een getal)
Maar kheb er echt geen idee van hoe het nu verder zou moeten.

En die RegEX ziet er ook nog "begrijpelijk" uit maar kheb er geen idee van hoe hieraan te beginnen.
Moet dit ook tussen de "javascript tags" staan? of is dit een heel andere "programmeertaal"?
Zoek eens met Google en met de GoT zoekmachine naar "Regular expressions with javascript"

Trouwens, volgens m'n Javascript debugger (FireFox extension) is de body van het andere frame niet toegankelijk (Permission denied). van dit stukje:
JavaScript:
1
url = parent.frames['benedenframe'].document.body.innerHTML.indexOf(woord);


Dit is de fout code:
code:
1
Error: uncaught exception: Permission denied to get property HTMLDocument.body

[ Voor 21% gewijzigd door eghie op 19-01-2005 14:39 ]


Verwijderd

Topicstarter
pffft, zijn er echt geen tips meer?

kgeraak er niet uit (wel interessant die reguliere expressies)
Pagina: 1