Autor Zpráva
darebak
Profil *
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
Máš to rozbité.
darebak
Profil *
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 *
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
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 *
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
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 *
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
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 *
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 *
Problém byl banální a vyřešen, tak děkuji všem za případné rady a pomoc.
darebak
Profil *
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 *
Zapomněl jsem napsat adresu funkčního příkladu
_es
Profil
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 *
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
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 *
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
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 *
Dobře, tak děkuji a tímto se loučím

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0