Autor Zpráva
Shadowek
Profil
Lze nějak nastavit aby při kliknutí na jakýkoliv odkaz v textu se provedla nějaka událost.
Samozdřejmě mužu napsat <a onclick="událos();"> ale to je pracné a nevhodné pro mé úmysly :D.
Já potřebuji aby se při kliknutí na jakýkoliv odkaz provedla ona událost.
Joker
Profil
Shadowek:
Udělejte si skript, který po načtení stránky přes getElementsByTagName vybere všechny odkazy a přiřadí jim událost na kliknutí.
Lopata
Profil
Shadowek:
takto:
var odkazy = document.body.getElementsByTagName('a');
		 	for(odkaz in odkazy) {
			 	odkazy[odkaz].onclick = function () {
				 	alert('cokoliv');
			 	}
		 	}

POZOR: když to dáte do hlavičky dokumentu, nebude to fungovat -> v té době ještě má body hodnotu null. Skript tedy umístěte na konec tagu body nebo jej celý vložte do funkce, kterou zavěsíte na událost body, onload.
_es
Profil
Shadowek:
function ovladac(){/*kód ovládača*/}
window.onload = function(){for(var i = 0; i < document.links.length; ++i) document.links[i].onclick = ovladac;};
Chamurappi
Profil
Reaguji na Shadowka:
Událost onclick (běžně) probublává, můžeš ji chytat na elementu <html> a pak zkoumat, na kterém odkazu k ní došlo:
document.documentElement.onclick = function(e)
{
  // srovnání nekompatibilit
  var event = e || window.event;
  var target = event.target || event.srcElement;
  
  // dohledání nejbližšího předka, který má href
  while(target && !target.href) target = target.parentNode;
  
  // není-li žádný takový předek, nekliklo se na odkaz
  if(!target) return;
  
  // hurá, máme cílovou adresu
  alert(target.href);
};
_es
Profil
Chamurappi:
Ten tvoj kód bude asi na to kliknutie reagovať trochu pomalšie.
Shadowek
Profil
_es:
Zkouším to tvoje řešení ale nějak mi nefunguje.
Shadowek
Profil
a nebo
Chamurappi:
To tvoje řešení taky jde ještě bych potřeboval změnit cíl odkazu ...
_es
Profil
Shadowek:
nějak mi nefunguje.
Mal som tam chybu - bodkočiarku navyše. Už by to malo fungovať.
Jednoducho to môžeš overiť, ak po načítaní nejakej stránky zadáš do adresového poľa:
javascript:function ovladac(){alert("click");return false;}( function(){for(var i = 0; i < document.links.length; ++i) document.links[i].onclick = ovladac;})();void 0;

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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