FindText Rückwärts
ToBiOh
- javascript
Hallo Javascriptler,
kann mir jemand sagen, wie ich mit findText eine Rückwertssuche starten kann? Vorwärts funktioniert das bei mir einwandfrei, aber ich schaffe es einfach nicht rückwärts zu suchen. Theoretisch müsste es ja so gehen:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>New Document</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a orci et massa sodales volutpat a a purus. Quisque tempus lacus eu justo lacinia rhoncus. Proin odio mauris, adipiscing id euismod ac, pharetra vitae mi. Suspendisse potenti. Cras sodales porttitor libero non placerat. Donec turpis nunc, condimentum id laoreet sed, egestas eget augue. Etiam sit amet odio dui, in commodo lacus. Vestibulum vitae arcu eu velit lobortis elementum sed nec tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ac turpis arcu. Fusce ullamcorper imperdiet lectus, in ultrices enim bibendum id. Phasellus venenatis sodales malesuada.
<input type="submit" onClick="find()" value="Finden">
<script type="text/javascript">
<!--
function find() {
if (typeof(finden) == "undefined") {
finden = document.body.createTextRange();
}
else {
finden.collapse(false);
}
finden.findText('a', 1, 1);
finden.select();
alert('gefunden');
}
//-->
</script>
</body>
</html>
Aber da zeigt mir Javascript als Suchergebnis einfach nur die allererste Fundstelle an und das war's. Wenn ich nochmal drück passiert nix. Vorwärts geht das tadellos. Kann es sein, dass Microsoft in MSDN einfach nur irgendwann mal die Rückwärtssuch-Option definiert hat und sie in Wirklichkeit verbuggt ist? Oder stimmt irgendwas mit meiner Range nicht?
danke im Voraus
Tobias
Hi,
function find() {
if (typeof(finden) == "undefined") {
finden = document.body.createTextRange();
}
else {
finden.collapse(false);
}
finden.findText('a', 1, 1);
finden.select();
alert('gefunden');
}
> Aber da zeigt mir Javascript als Suchergebnis einfach nur die allererste Fundstelle an und das war's. Wenn ich nochmal drück passiert nix. Vorwärts geht das tadellos. Kann es sein, dass Microsoft in MSDN einfach nur irgendwann mal die Rückwärtssuch-Option definiert hat und sie in Wirklichkeit verbuggt ist? Oder stimmt irgendwas mit meiner Range nicht?
Du collaps't falscherum.
Mit
`finden.collapse(true);`{:.language-javascript}
und
`finden.findText('a', -1, 0);`{:.language-javascript}
funktioniert die Rückwärts-Suche bei mir im IE 8 einwandfrei.
MfG ChrisB
--
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
Ohje, manchmal ist man halt blind.
Merci! Tobias