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:
  1. <script language="JavaScript" type="text/javascript">  
  2. function display() {  
  3. ind = document.urlap.list.selectedIndex;  
  4. val = document.urlap.list.options[ind].value;  
  5. if (val == "elso") {  
  6. window.open("#elso");  
  7. kereses = 0;  
  8. }  
  9. else open("404.php");  
  10. }  
  11. </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:
  1. location.href="#elso";  
  2. // illetve  
  3. 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:
  1. <ul id="menu">  
  2.   <li class="item-1 active"><a href="page-1.html#item-1">Item 1</a></li>  
  3.   <li class="item-2"><a href="page-2.html#item-2">Item 2</a></li>  
  4.   <li class="item-3"><a href="page-3.html#item-3">Item 3</a></li>  
  5.   <li class="item-4"><a href="page-4.html#item-4">Item 4</a></li>  
  6. </ul>  
  1. #menu {  
  2.   border1px solid gray;  
  3.   padding: .25em;  
  4.   background: lightgray;  
  5.   floatleft;  
  6.   positionrelative;  
  7.   margin0;  
  8. }  
  9.   
  10. #menu:after {  
  11.   positionabsolute;  
  12.   right: .25em;  
  13.   top: .75em;  
  14.   border-left5px solid transparent;  
  15.   border-top5px solid #6D5300;  
  16.   border-right5px solid transparent;  
  17.   content"";  
  18. }  
  19.   
  20. #menu li {  
  21.   displaynone;  
  22.   margin0 1em 0 0;  
  23.   padding0;  
  24. }  
  25.   
  26. #menu li.active {  
  27.   displayblock;  
  28. }  
  29.   
  30. #menu li:hover {  
  31.   background#eee;  
  32. }  
  33.   
  34. #menu:hover li {  
  35.   displayblock  
  36. }  
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.
  1. <a href="fejezet.html#elso">1. fejezet</a>