Autor | Zpráva | ||
---|---|---|---|
darebak Profil * |
#1 · Zasláno: 10. 4. 2011, 14:16:02
Dobrý den,
našel jsem si tento script, ale chci se zeptat jak to udělat aby se neodkazovalo jako ?3, ale jako #3 Dkuju za rady nebo popřípadě pomoc <script type="text/javascript"><!-- Begin function objGet(x) {if (typeof x=='string') with (document){ if (Boolean(getElementById)) x=getElementById(x); else if (Boolean(all)) x=eval('all.'+x); else if (Boolean(layers)) x=layers[x]; else x=null;}return x;} function obji(x,z) {objGet(x).innerHTML=z} function objxy(z,x,y) {z=objGet(z).style;z.left=x+"px";z.top=y+"px"} var entrys = new Array() // === HelpFunction (allgemein) === // Set node function set_nodes(nmb) { var i for(i = nmb; i < entrys.length; i++) { entrys[i].node = 2 if(i > 0) if(entrys[i - 1].level < entrys[i].level) entrys[i - 1].node = 0 } } // Submenu function set_submenus(nmb) { var j var level entrys[nmb].node = 1 level = entrys[nmb].level - 1 if(nmb <= 0 || level < 1) return for(j = nmb - 1; j >= 0; j--) { if(entrys[j].level == level && entrys[j].node != 2) { entrys[j].node = 1 level-- } } } // New entry function new_entry(level, name, url, target) { this.level = level this.name = name this.url = url this.target = target this.node = null return (this) } // Entry function entry(level, name, url, target) { var pos = entrys.length if(level < 1) {alert("Level je mensi nez 1!");return} entrys[pos] = new new_entry(level, name, (arguments.length >= 3) ? url : null, (arguments.length >= 4) ? target : null) set_nodes(pos) } // Display entry function display_entry(nr) { var i, a,b,c,d,e, aaa;aaa=''; for(i = 1; i < entrys[nr].level; i++) aaa+='<img src="line.gif" width="16" height="16" align="center" alt="">\n'; e=entrys[nr].name; switch(entrys[nr].node) { case 0: a='close'; c='folder.gif'; b='<a href="' + location.pathname + '\?' + nr + '" title="' + e + '">'; d='<strong>' + e + '<\/strong><\/a><\/span><br \/>\n'; break; case 1: a='open'; c='folder2.gif'; b=''; d='<strong title="' + e + '">' + e + '<\/strong><\/span><br \/>\n'; break; case 2: a='dot'; c='page.gif' b='<a href="' + entrys[nr].url + '"' + (entrys[nr].target ? ' target="' + entrys[nr].target + '"' : '') + ' title="' + e + '">'; d= e + '<\/a><\/span><br \/>\n'; break; } aaa+='<span class="'+a+'"><img src="'+c+'" width="16" height="16" border="0" align="center" hspace="2" alt="' + e + '">'+b+d; document.write(aaa); } function menue() { if(location.search) set_submenus(parseInt(location.search.substring(1))) with(document) { var i var next_level = null open("text/html") write("<p><nobr \/>") for(i = 0; i < entrys.length; i++) { if(entrys[i].level <= next_level) next_level = null if(!next_level) display_entry(i) if(entrys[i].node == 0 && !next_level) next_level = entrys[i].level } writeln("<\/nobr><\/p>") close() } } //vlastní menu entry(1,"archiv novinek") entry(2,"hardware","hardware.htm"); entry(2,"software","software.htm"); entry(1,"araa"); entry(2,"hardware","hardware.htm"); entry(2,"software","software.htm"); // End --></script> |
||
_es Profil |
#2 · Zasláno: 10. 4. 2011, 14:23:52
Máš to rozbité.
|
||
darebak Profil * |
#3 · Zasláno: 10. 4. 2011, 14:36:50
Nemám to rozbité:-) Všechno maká jak má. Jen by jsem potřeboval aby to bylo ve tvaru místo ?3 na tvar #3, ale nejlepší možností je ?misto=3
|
||
darebak Profil * |
#4 · Zasláno: 10. 4. 2011, 16:18:26
Sám koukám to nezvládnu a tak se chci zeptat kolik by stalo to zadat jako zakázku?
Zakázka by byla taková, že by se to udělalo aby se otevřela daná kategorie pod adresou (?misto=3) a pokud by byla událost onclick na jinou, tak by se rozbalila ta a měl by možnost přejít. Může mi na tohle někdo napsat odhadem kolik by to stálo a zda je to reálné? Děkuju |
||
_es Profil |
#5 · Zasláno: 10. 4. 2011, 17:00:55
darebak:
„Může mi na tohle někdo napsat odhadem kolik by to stálo a zda je to reálné?“ Ak zrozumiteľne vysvetlíš, o čo ti ide, tak by ti to možno niekto vyriešil/pomohol aj bez zákazky. Aby si zase neplatil len za nejakú „prkotinu“. Vôbec mi nie je jasná motivácia a účel dotazu. |
||
darebak Profil * |
#6 · Zasláno: 10. 4. 2011, 17:43:02
Jedná se vlastně o úpravu kódu ze stránek Zásah pro zběhlého programátora je si myslím dost jednoduchý. Jde mi o to aby zjištoval na místo
adresa?3 adresa?misto=id_kategorie a zároveň událostí onclick otevíral menu. |
||
_es Profil |
#7 · Zasláno: 10. 4. 2011, 20:51:10
darebak:
Doporučujem byť viac kritický ku kódom, stiahnutým priamo z uvedenej stránky. Skús pohľadať niečo iné z iných zdrojov. |
||
darebak Profil * |
#8 · Zasláno: 10. 4. 2011, 21:22:45
Pokusím se stát kritikem i když moje znalosti tomu neodpovídají. Vadí mi na tom kódu, že tam není možnost události onclick pro rozbalení menu. Po študování kódu a zapojení trošky logiky i když má logika asi tady není na místě jsem pochopil, že neni reálné aby se rozbalilo podle adresy ?misto=id_kategorie
Ale událost onclick si myslím, že tam vážně být měla. Alespoň má maličkost by ocenila víc jak podle adresy spíš podle události onclick. Bohužel jsem hledal hodiny a tenhle kód je nejvhodnější až na tu chybějící událost onclick |
||
peta Profil |
#9 · Zasláno: 11. 4. 2011, 14:46:14
b='<a href="' + location.pathname + '\?' + nr + '" title="' + e + '">';
Je radek, kde se pracuje s otaznikem, ale bude treba upravit asi jeste jinou cast, ktera pracuje s url. Jako, nic proti, ale ten script je naprosto silenej. Co zkusit css + html (ul li)? http://peter-mlich.wz.cz/web/js/prx/menuedul.htm Navic na dotykovem displeji rozbalovani neni moc akcne pouzitelne. |
||
darebak Profil * |
#10 · Zasláno: 11. 4. 2011, 17:00:32
Moc děkuju, ale už jsem použil jiné řešení, které mám téměř hotové. Jen je tam malá chybička, kterou přehlížím a to ta, že se poslední 4 sekce nechtějí zavřít při příchodu na stránku. Více na živém příkladě
Npíše mi prosím někdo kde mám chybu? Děkuju |
||
darebak Profil * |
#11 · Zasláno: 12. 4. 2011, 01:38:12
Problém byl banální a vyřešen, tak děkuji všem za případné rady a pomoc.
|
||
darebak Profil * |
#12 · Zasláno: 12. 4. 2011, 07:34:11
Jestli můžu mít ještě jeden dotaz, tak by jsem se chtěl zeptat proč script nefunguje v Opeře? Ve všech mě známých prohlížečů se zobrazuje jak má, ale opera jako jediná se chová jako by byl vypnutý javascript, ale mám ho v nastavení zapnutý, tak nechápu proč to nefunguje. Děkuju za poslední pomoc
|
||
darebak Profil * |
#13 · Zasláno: 12. 4. 2011, 07:35:35
Zapomněl jsem napsat adresu funkčního příkladu
|
||
_es Profil |
#14 · Zasláno: 12. 4. 2011, 08:00:06
darebak:
„opera jako jediná se chová jako by byl vypnutý javascript, ale mám ho v nastavení zapnutý, tak nechápu proč to nefunguje.“ Zrejme skript, ktorý si stiahol, používa nejaké nekompatibilné/problematické veci, možno túto. Buď to nejako vyriešiš, alebo skús zase nejaký iný skript, určite sa ich dá nájsť veľa. |
||
darebak Profil * |
#15 · Zasláno: 12. 4. 2011, 09:00:50
Když se podíváte do zdrojového souboru, tak tam nic s uvedených položek není. Testoval jsem to na několik prohlížečích (IE6,IE7,IE8,safari,Google chrome,Netscape,Maxthon,FireFox,Opera) a jen Opera to nezobrazuje jak má.
|
||
_es Profil |
#16 · Zasláno: 12. 4. 2011, 09:57:46
darebak:
„Když se podíváte do zdrojového souboru, tak tam nic s uvedených položek není.“ Akých položiek? Ja tam vidím časté použitie metód getAttribute a setAttribute , no môže byť nekompatibilita aj inde.
|
||
darebak Profil * |
#17 · Zasláno: 12. 4. 2011, 13:59:59
Jestli tomu dobře rozumím, tak dělá zle tohle?
if (dhtml){ var folder_closed = document.createElement('img'); folder_closed.setAttribute('src','img_test/folder-closed.gif'); var plus_cross = document.createElement('img'); plus_cross.setAttribute('src','img_test/plus-cross.gif'); var plus_corner = document.createElement('img'); plus_corner.setAttribute('src','img_test/plus-corner.gif'); var folder_open = document.createElement('img'); folder_open.setAttribute('src','img_test/folder-open.gif'); var minus_cross = document.createElement('img'); minus_cross.setAttribute('src','img_test/minus-cross.gif'); var minus_corner = document.createElement('img'); minus_corner.setAttribute('src','img_test/minus-corner.gif'); document.write('<style type="text/css">#menuHolder{visibility:hidden;}' + (document.all && (!document.getElementById || !document.getElementsByTagName) ? '#menuHolder img {vertical-align: text-top;}' : '') + '</style>'); } Pokud ano, tak jak se to dá opravit nebo nahradit? |
||
_es Profil |
#18 · Zasláno: 12. 4. 2011, 15:26:08
darebak:
„Pokud ano, tak jak se to dá opravit nebo nahradit?“ Prečo sa pýtaš na niečo, na čo si už odpoveď dostal? (v [#14] _es) |
||
darebak Profil * |
#19 · Zasláno: 12. 4. 2011, 19:31:47
Dobře, tak děkuji a tímto se loučím
|
||
Časová prodleva: 13 let
|
0