Autor Zpráva
Inpocasi
Profil
Lze nějak udělat odkaz na stránku a zároveň s ním spustit funkci na té cílové stránce?

Nejlepší asi bude příklad (nefunkční!):

Na stránce b.html je odkaz:

<a href="a.html" onclick="stanice()">Odkaz na A</a>


Při kliknutí na něj chci zobrazit stránku a.html a spustit funkci stanice()

Děkuji.
_es
Profil
Inpocasi:
Nejakú takúto dodatočnú funkčnosť budeš musieť spraviť upravením cieľovej adresy, buď časti search alebo hash.
A potom na cieľovej stránke zistíš z objektu location tie časti a podľa nich spustíš nejaký kód.
Witiko
Profil
Není možné. Ale můžeš stránce a.html nastavit onload event.

<a href="a.html">Odkaz na A</a>

...

<body onload="stanice()">
Darker
Profil
Je možné, tak jak to popsal _es.

Příklad:
Odkaz:
http://pokus.com/pokus.html?skript=alert%28%27baf%27%29


Cíl:
<head>....</head>
<body onload=spust()/>

...
<script>
function spust() {
eval(getURLParam("skript"));
}
function getURLParam(strParamName){var strReturn="";var strHref=window.location.href;if(strHref.indexOf("?")>-1){var strQueryString=strHref.substr(strHref.indexOf("?")).toLowerCase();var aQueryString=strQueryString.split("&");for(var iParam=0;iParam<aQueryString.length;iParam++){if(aQueryString[iParam].indexOf(strParamName.toLowerCase()+"=")>-1){var aParam=aQueryString[iParam].split("=");strReturn=aParam[1];break;}}};return unescape(strReturn);};
</script>
</body>
_es
Profil
Witiko:
On asi myslel zo stránky b.html sa odkazom presunúť na stránku a.html kde by sa spustila funkcia definovaná v a.html. Aspoň ja som to tak pochopil.
Darker
Profil
No ale vždyť to by šlo. Zkus si to...
_es
Profil
Darker:
To nie je dobrá implementácia toho princípu.
To by mohol hocikto vytvoriť odkaz na Inpocasiho stránku so svojim vlastným JS, ktorý by sa po tom spustil.

Ja som Witikoho príspevok pochopil tak, že reaguje na možnosť spustiť funkciu, definovanú v b.html, na stránke a.html, čo naozaj nejde, jedine, že by sa ten odkaz otváral do nového okna.
TomasJ
Profil
Co takhle udělat funkci stanice() i s parametrem url ( stanice(url) ) ?
Pak dáš do skriptu window.location.replace(url); a za to skript, který tam je.
Následně uděláš jen
<a onclick='stanice("a.html");'>Odkaz na A</a>

a mělo by to taky fungovat ne?
Darker
Profil
_es:
svojim vlastným JS
Já to ukazoval obeceně. Samosebou, pak by to vypadalo spíš takto:
function spust() {
if(getURLParam("skript")=="neco")udelejneco();
;
}

Myslel jsem, že mu to dojde.
Inpocasi
Profil
Děkuji za pomoc.

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