Autor Zpráva
slovakCZ
Profil
Dobry den,
chci se zeptat, proc mi tento script nefunguje, kde je chyba (pri nacteni stranky to ma automaticky "kliknout" na dany odkaz s tridou a)?
kod:
<html>
<head>
<script type="text/javascript">
function init(){
var linkPage = document.getElementByClassName('a').href;
window.location.href = linkPage;
}
onload=init;
</script>
</head>
<body>
<div id="pokus">
<a href="5.html" id="nejake_id" class="a"> a zde odkaz </a>
</div>
</body>
</html>

ovsem nasledujici kod jiz funguje, proc to tedy nejde i podle ID
<html>
<head>
<script type="text/javascript">
function init(){
var linkPage = document.getElementById('nejake_id').href;
window.location.href = linkPage;
}
onload=init;
</script>
</head>
<body>
<div class="pokus">
<a href="5.html" id="nejake_id" class="a"> a zde odkaz </a>
</div>
</body>
</html>


Dekuji Vam za kazdou radu.. Tom
Yur4Y
Profil
getElementByClassName neexistuje. Existuje akurát getElementsByClassName, ale nepodporuje to IE. Navyše getElementById vracia priamo objekt daného elementu, zatiaľčo getElementsByClassName vracia pole objektov.
slovakCZ
Profil
aha.. takze toto reseni, kdy by script mel automaticky po nacteni stranky kliknout na dany odkaz kde je trida odkazu napr "abc" (v ukazce "a") takto vyresit nepujde..
Yur4Y
Profil
Môžete použiť toto:
<script type="text/javascript">
window.onload = function()
{
	var odkazy = document.getElementsByTagName('a');
	for (var i = 0, size = odkazy.length; i < size; i++)
	{
		if (odkazy[i].className == 'a')
		{
			//váš kód
		}
	}
}
</script>
Pokiaľ majú class=a aj iné elementy, ako <a>, tak miesto document.getElementsByTagName('a') použite document.getElementsByTagName('*').
slovakCZ
Profil
toto jsem nezkousel, zkusim to vecir az bude trocha casu, ala kamarad mi nasel funkcni reseni... vypadalo by asi nejak takto (pri nacteni stranky se v novem okne otevre stranka seznam.cz)
<html>
<head>
<script type="text/javascript">
function getElementClass(theClass) {
  var allPageTags = new Array();
  var linkPage;
  var allATags=document.getElementsByTagName("a");
  for (i=0; i<allATags.length; i++){
    if (allATags[i].className==theClass) {
    linkPage = allATags[i].href;
    window.open(linkPage, 'nove');
    }
  }
}
</script>
</head>
<body onload="getElementClass('nejaka_class');">
<div class="pokus">
<a href="http://www.seznam.cz" class="nejaka_class"> a zde odkaz </a>
</div>
</body>
</html>
Timy
Profil
slovakCZ
Yur4Y
Obě implementace jsou špatně, neberou v potaz, že v jeden prvek může mít dvě třídy class="jedna dva".

Co na to použít jQuery?
slovakCZ
Profil
ja javascriptu nerozumim, obstarava mi vskere ukoly znamy, jenze neni nyni k dispozici proto jsem se ptal vas ;o) jinak reseni vyse mi bohate staci pro muj pripad, tridy nejsou nastesti dve :) jinak mrknu an to reseni s pouzitim jQuery, treba necemu priucim

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: