ugrás a tartalomhoz

link megnyitása JS-sel

Tashi · 2011. Dec. 4. (V), 14.46
Sziasztok!

Lenne egy olyan problémám, hogy készítettem egy weboldalt. Az oldal tetején van egy menü, amiből ha a felhasználók választanak egy tartalmat pl. "1. fejezet", akkor a program a felhasználót a megfelelő helyre lépteti. Vagyis megnyitja neki a "fejezet.html#elso" oldalt. Ez idáig még rendben is volna. A probléma csak az, hogy az open() függvény mindig új ablakot nyit meg. Melyik függvényt kellene használnom, ahhoz, hogy az eredeti ablakon belül navigálja a program a felhasználót a céljához?

A segítséget előre is köszönöm!

A kód:

<script language="JavaScript" type="text/javascript">
function display() {
ind = document.urlap.list.selectedIndex;
val = document.urlap.list.options[ind].value;
if (val == "elso") {
window.open("#elso");
kereses = 0;
}
else open("404.php");
}
</script>
 
3

Menü

Hidvégi Gábor · 2011. Dec. 4. (V), 16.05
Ha szimpla legördülő menüt használsz, egy kattintást megspórolhatsz a látogatónak, és JS nélkül is működni fog.
1

window.location.assign

Poetro · 2011. Dec. 4. (V), 15.59
window.location.assign metódusra van szükséged.
2

az open() függvény mindig új

kuka · 2011. Dec. 4. (V), 16.00
az open() függvény mindig új ablakot nyit meg.
Nem mindig, csak alapértelmezetten. Az open() második paraméterével megadhatod, hogy hova nyisson. Ha az értéke '_self', akkor az aktuális ablakba nyissa.

Ettől függetlenül fölösleges ide az open(). Elegendő egyszerűen:

location.href="#elso";
// illetve
location.href="404.php";
Ettől függetlenül fölöslegesnek hangzik ide a JavaScript. Miért nem elegendő a HTML?
5

köszi

Tashi · 2011. Dec. 5. (H), 19.53
Köszönöm a kódot!

Ettől függetlenül fölöslegesnek hangzik ide a JavaScript. Miért nem elegendő a HTML?

Nem egy egyszerű menüt készítettem, hanem egy form elemben található lenyíló listát és úgy gondoltam, hogy ez a módszer lenne a legjobb megoldás hozzá. Szerintetek, hogy lenne hatékonyabb?
6

Lista

Poetro · 2011. Dec. 5. (H), 19.56
Érdemesebb ehelyett egy rendezett, vagy rendezetlen listát használni, amit CSS-sel nyitsz ki, hoverre. És akkor nem kell bele semmilyen JavaScript trükközés, mivel hagyományos linkek lennének benne. Így megoldódna a hozzáférhetőség is, valamint a keresőmotorok is be tudnák indexelni a tartalmat.

Csináltam is neked egy kis HTML / CSS párost:
<ul id="menu">
  <li class="item-1 active"><a href="page-1.html#item-1">Item 1</a></li>
  <li class="item-2"><a href="page-2.html#item-2">Item 2</a></li>
  <li class="item-3"><a href="page-3.html#item-3">Item 3</a></li>
  <li class="item-4"><a href="page-4.html#item-4">Item 4</a></li>
</ul>
#menu {
  border: 1px solid gray;
  padding: .25em;
  background: lightgray;
  float: left;
  position: relative;
  margin: 0;
}

#menu:after {
  position: absolute;
  right: .25em;
  top: .75em;
  border-left: 5px solid transparent;
  border-top: 5px solid #6D5300;
  border-right: 5px solid transparent;
  content: "";
}

#menu li {
  display: none;
  margin: 0 1em 0 0;
  padding: 0;
}

#menu li.active {
  display: block;
}

#menu li:hover {
  background: #eee;
}

#menu:hover li {
  display: block
}
Természetesen ki is próbálható.
7

ok

Tashi · 2011. Dec. 5. (H), 20.01
Ja, igen. Teljesen igazad van. Gyorsabban lehetne kezelni és biztosan mindenki számára elérhető lenne úgy a menü. Hamarosan le is cserélem. Köszi.
4

Vagyis megnyitja neki a

Karvaly84 · 2011. Dec. 4. (V), 23.08
Vagyis megnyitja neki a "fejezet.html#elso" oldalt.
<a href="fejezet.html#elso">1. fejezet</a>