Autor Zpráva
inner
Profil *
Zdravím, mám následující problém:

mám span a v tom spanu odkaz

<span id="test"><a href="ss" target="test1" onclick="jstest('test')" >bla</a></span>

Funkce jstest udělá to že aktivuje funkci inner html v externím souboru s javaskriptem a tato funkce přepíše obsah SPANU s id "test" na hotovo... takže vlastně po kliknutí na odkaz ten odkaz zmizí a objeví se místo něj slovo hotovo, HREF odkazu mám namířený pomocí TARGET do IFRAMU jménem test1 na té stránce.

Problém je ten, že v IE se po kliknutí na odkaz sice správně nahradí odkaz slovem "hotovo", ale neprovede se HREF odkazu... (stránka v HREF se v iframu vůbec neotevře) dělá to i IE6... ve FF a v Opeře to funguje bez problému... jak to mám udělat aby to fungovalo i v IE? (Tedy po kliknutí na odkaz by se jeho HREF otevřel v tom iframu a pak odkaz zmizel a místo něj se objevilo slovo hotovo, tak jak to ted správně funguje ve FF a opeře)

díky moc za případné rady
joe
Profil
Tak přidej do funkce jstest v js podmínku, pokud se jedná o IE, tak načti do iframu soubor. Pokud bude js vypnutý, provede se href.
inner
Profil *
A nejde nějak IE donutit aby se nechoval tak retardovaně a normálně to bral?
inner
Profil *
Jak přikážu javascriptu otevvřít v IFRAMu tu adresu? zkoušel sem

document.getElementByTagName('fram').location.href = "http://seznam.cz";

ale to nefunguje
inner
Profil *
Tak to už mam ted ještě jak udělat podmínku která se provede jen v IE?
inner
Profil *
Sakra v IE6 nefunguje this.href to se mi snad zdá, no aspon že IE7 to umí
Chamurappi
Profil
Reaguji na joa:
přidej do funkce jstest v js podmínku, pokud se jedná o IE
No fuj. Proč detekovat prohlížeč?

Reaguji na inner:
To nalistování pomocí skriptu nefunguje v ostatních prohlížečích? Jestli ano, tak tam detekci nedávej. Na světě nejsou jen tři prohlížeče.
inner
Profil *
Právě že v ostatních prohlížečích to funguje jen v IE ne a předpokládám že když to funguje ve FF a opeře, ostatní prohlížeče sou dost normální na to aby to v nich jelo taky...

nějaký návrh jak v IE6 rozchodit this.href? :)
inner
Profil *
Respektive jde mi hlavně o to jak v externím skriptu, ve funkci získat HREF odkazu bez toho, abych ho musel do toho onclicku vepisovat jako hodnotu...
Chamurappi
Profil
Reaguji na inner:
Mně naopak připadá normální, že se odkaz, který už neexistuje, neprovede. Nikdy mě nenapadlo to zkoušet, ale pochybuji, že to pojede ve všech verzích Mozilly a Opery.

Hoď sem živou ukázku nebo kód. Nalistování do <iframu> jde snadno napsat tak, aby jelo napříč všemi prohlížeči.
Chamurappi
Profil
Reaguji na inner:
onclick="jstest('test', this.href)"
— pak bude druhým argumentem hodnota atributu href.
inner
Profil *
Už jsem to vyřešil,
sem blbec, měl sem na stránce totiž známky k fotkám a alert() mi pořád vracel že je ta hodnota prázdná, jenže já sem zapomněl že sem this.href nastavil zkušebně jen do jedné známky a přitom klikal na ostatní:) Omlouvám se IE6 že sem na něj nadával:) Mimochodem kolik % lidí ještě používá IE6 oproti novému IE?
inner
Profil *
Mně naopak připadá normální, že se odkaz, který už neexistuje, neprovede.

Já měl za to že se to provádí popořadě, když mám třeba <a href="" target="" onclick=""

tak prohlížeč nejdřív provede href v targetu a potom spustí onclick kterej už ten provedenej odkaz smaže.. nebo to tak není?
Chamurappi
Profil
Reaguji na inner:
kolik % lidí ještě používá IE6 oproti novému IE?
Množství větší než zanedbatelné.

prohlížeč nejdřív provede href v targetu a potom spustí onclick
Ne, nejdřív se spustí onclick. Obsluha té události může nalistování odkázané stránky zrušit pomocí return false. Zkus si třeba <a href="odkaz.html" onclick="return confirm('Opravdu přejít na odkaz?')"> — na odkaz se přejde v závislosti na vyhodnocení funkce confirm.
joe
Profil
Chamurappi
Proč fuj? Není na tom nic špatného.

Rozhodně lepší načítat stránku jednou, než aby dvakrát proklikla například. Samozřejmě, že když provede jen nějakou funkci a vrátí false, tím pádem se neprovede href je lepší. Ale určitě není špatná podmínka pro zjištění prohlížeče!
Chamurappi
Profil
Reaguji na joa:
Rozhodně lepší načítat stránku jednou, než aby dvakrát proklikla například.
Samozřejmě. V onclick se pomocí skriptu nalistuje adresa do <iframu> a vrátí se false => načte se jen jednou a všude stejně.

Ale určitě není špatná podmínka pro zjištění prohlížeče!
Jde to spolehlivě a snadno vyřešit bez ní, proto určitě špatná je. Jak poznáš prohlížeč, který se v tomto chová jako Explorer, od prohlížeče, který se v tomto chová jako současná Mozilla?
peta
Profil
Chamurappi
Javascript spolehlive funguje jen v dominantnich prohlizecich, coz je IE, Moz. Na tech ostatnich, ktere neumi spoustu dalsich zakladnich veci bych neresil problem, ze si neporadi ani s touto.

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