Autor Zpráva
gardener
Profil
Zdravím,
chtel bych se zeptat, ja je mozne za pooci JS docilit toh aby byla JS funkce definovana v <head> zavolana jen na urcitych strankach bez nutnosti uskutecneni nejake spousteci udalosti (onLoad, etc..)

Jde o to, ze jsem vzdy spustel udalost v kazdem view tim, ze jsem ho hlavni sablony dal do <body> onLoad

Ted bych ale chtel zavolat ji jen na nekterych strankach:

Zkousel jsem tedy do daneho view umistit>>

  <script type="text/javascript">
  <!–
   backButtonOverride();
    }
  // –>
  </script>


To ale bohuzel funkci nezavola.

Diky za kazdou radu.
Witiko
Profil
Zavolá, máš na řádku 4 navíc }, což tam nemá co dělat. Otázkou je proč cheš spouštět funkci když ještě není dokument načten? Nevím, co má backButtonOverride přesně na práci, ale vím bezpečně, že ve chvíli, kdy dojde k zavolání, nebude existovat document.body ani žádné elementy v něm.
gardener
Profil
Ano, je tam navic, v kodu jsem ji ale mel smazanou.
fce backButtonOverride() zamezuje uzivateli v urcitych mistech pouzit tlacitko zpet v prohlizeci..

Na onload funguje zde nikoliv.
Zapsanou ji mam takto>

function backButtonOverride()
{
  // Work around a Safari bug
  // that sometimes produces a blank page
  setTimeout("backButtonOverrideBody()", 1);

}

function backButtonOverrideBody()
{
  // Works if we backed up to get here
  try {
    history.forward();
  } catch (e) {
    // OK to ignore
  }
  // Every quarter-second, try again. The only
  // guaranteed method for Opera, Firefox,
  // and Safari, which don't always call
  // onLoad but *do* resume any timers when
  // returning to a page
  setTimeout("backButtonOverrideBody()", 100);
}


V nekterych mistech jednoduse potrebuji aby uzivatel nemohl pristupovat k formulari a zvovu ho vyplnovat, browser si data z formu udrzuje v cache, takze pokud dam zpet zobrazi se mi vsechny vyplenene hodnoty, coz by mohlo svadet k vicenasobnemu odesilani formu.
Witiko
Profil
Takže na dané stránce dojde k nekonečnému cyklu a volání jedné funkce 10x za sekundu? Hodně agresivní způsob, nedivil bych se, kdyby způsobil signifikantní zpomalení stránky, případně dokonce zatuhnutí na pomalejších strojích.

Jinak problém je v komentářích, pomlčky jsou třeba dvě:

<script type="text/javascript">
   <!--
      backButtonOverride();
   -->
</script>
gardener
Profil
Dekuju za upozorneni, co mne ale nenapadlo je to, ze script musi bbyt na strance s formularem na kterou by se mel chtit uzivatel vratit, ne na strance s potvrzenim.

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