Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Pomozte mi s JavaScriptem prosim :(

Dobrý den,
Na stránkách které předělávám je k otevírání obrázků z náhledu do nového okna používán tento script:

<script type="text/javascript">
<!--
function otevri(url,sirka,vyska)
{
  var okno;
  var zleva=(screen.width-sirka)/2;
  var zhora=(screen.height-vyska)/2;
  var winprops='width='+sirka+',height='+vyska+',top='+zhora+',left='+zleva+',toolbar=no,resizable=yes';
  okno=window.open(url,"okno",winprops);
 return false;
}
//-->
</script>

a v odkazu na obrzak je:

onclick="otevri('obrazek.jpg',820,620);return false;"

Narazil sem ale na problém. Když otevřu jeden obrazek tak vyskočí okno s většímm obrázkem, pokud ale pak kliknu na jiný náhhledový obrázek tak se sice zobrazí, ale v tom samém okně a nevyskočí nad prohližeč. Potřeboval bych poradit, buď jak donutit okno vyskočit, a nebo jak obrázek otevřít v jiném, novém okně. Děkuju za každou radu.

Předmět Autor Datum
Aby sa okno dalo dopredu, musíš po otvorení ešte zavolať jeho metódu focus. Mierne by som to upravi… nový
los 02.08.2006 11:39
los
Ahoj, může to být třeba takto :¨ <script type="text/javascript"> var haf=0; <!-- function otevri(ur… nový
AZOR 02.08.2006 11:44
AZOR
Vsem dekuju za radu... a nejvice Azorovy... pouziju jeho fintu s promenou HAF :) z toho duvodu, ze j… nový
trew.x 02.08.2006 11:51
trew.x
Ak to chceš otvárať vždy do nového okna, môžeš rovno použiť ako názov "_blank" a nemusíš robiť žiadn… nový
los 02.08.2006 11:53
los
:-[ tak to s tim _blank bude pravda, ja osobně jsem _blanka nikdy nepoužíval, na nové okno mi vždy s… poslední
AZOR 02.08.2006 12:20
AZOR
Jestli jde jenom o to, aby se to otevrelo v novem okne, tak staci dat nazev "_new". nový
Ynd0r 02.08.2006 11:55
Ynd0r
No jo :) mate pravdu.. to nejjednoduzsi reseni je taky nejlehci :) Dekuji :) Ja se v JS vubec nevyzn… nový
trew.x 02.08.2006 12:11
trew.x

Aby sa okno dalo dopredu, musíš po otvorení ešte zavolať jeho metódu focus.

Mierne by som to upravil, aby to nejako fungovalo aj pri príliš aktívnom blokovaní popup okien:

function otevri (url, sirka, vyska)
{
  var zleva = (screen.width - sirka) / 2;
  var zhora = (screen.height - vyska) / 2;
  var winprops = "width=" + sirka + ",height=" + vyska + ",top=" + zhora + ",left=" + zleva + ",toolbar=no,resizable=yes";
  var okno = window.open (url, "okno", winprops);

  if (okno)
    okno.focus ();

  return okno;
}

a v odkaze by bolo

href="obrazek.jpg" onclick="return !otevri(this.href,820,620)"

Ahoj, může to být třeba takto :¨

<script type="text/javascript">
var haf=0;
<!--
function otevri(url,sirka,vyska)
{
haf++;
  var okno;
  var zleva=(screen.width-sirka)/2;
  var zhora=(screen.height-vyska)/2;
  var winprops='width='+sirka+',height='+vyska+',top='+z hora+',left='+zleva+',toolbar=no,resizable=yes';
  okno=window.open(url,"okno"+haf,winprops);
 return false;
}
//-->
</script>

Jde o to aby se ty okna nejmenovali stejně, jinak se to bude otvírat v tom samém. Takhle do názvu okna dávám
ještě jednu proměnou.
Anebo takto :

<script type="text/javascript">
<!--
function otevri(url,budlik,sirka,vyska)
{

  var okno;
  var zleva=(screen.width-sirka)/2;
  var zhora=(screen.height-vyska)/2;
  var winprops='width='+sirka+',height='+vyska+',top='+zhora+',left='+zleva+',toolbar=no,resizable=yes';
  okno=window.open(url,budlik,winprops);
 return false;
}
//-->
</script>

Čimž jsem přidal do funkce ještě jednu proměnnou(budlik), která se projeví i img:

<img onclick="otevri('sudoku.jpg','marta',820,620);retu rn false;" src="obr.jpg">
<img onclick="otevri('sudoku.jpg','jinej_nazev',820,620 );return false;" src="obr.jpg">

Ak to chceš otvárať vždy do nového okna, môžeš rovno použiť ako názov "_blank" a nemusíš robiť žiadnu čiernu mágiu :-).

edit: princíp haf nebude fungovať, keď dáš refresh hlavného okna a zostanú otvorené okná s menom haf1, haf2, ..., pretože po refreshi sa premenná haf vynuluje a obrázky sa začnú nahrávať do tých okien rovnako ako predtým.

:-[ tak to s tim _blank bude pravda, ja osobně jsem _blanka nikdy nepoužíval, na nové okno mi vždy sloužila jednopísmená proměnná, která neexistovala, či nějaké (libovolné bouchnutí do klávesnice)

ad edit: ..taky by tam nemuselo bejt haf++ ale dostatečně šílené Random :-D:-p

Zpět do poradny Odpovědět na původní otázku Nahoru