Autor Zpráva
veronika
Profil *
Ahoj po dlouhém hledání jsem našla tento script který částečně vyhovuje tomu co potřebuji.
<a href='#' onclick='ukaz(event, "pokus.php")'><img src='ukaz.png'></a>
<script>
    function ukaz(event, url){
                         return window.open(url,"detail","width=300,height=200,left="+event.screenX+",top="+event.screenY);
                                        }
</script>

No a já bych potřebovala aby se mi místo nového okna zobrazil na tom samém místě po kliknutí DIV s nějakým textem, v tom samém okně.

Děkuji moc za rady, protože já JS moc nerozumím a chci ho použít pouze pro tuhle příležitost.
Fisir
Profil
Reaguji na veroniku [#1]:
Budeš potřebovat změnit styly tak, aby byl daný <div> viditelný. Pak do něj nejspíše AJAXem dostat nějaká data.
veronika
Profil *
Já to mám teď udělaný že odkaz mám na tu samou stránku a pomocí podmínky IF kontroluji zda byl stisknut pravě tento odkaz a na základě toho se mi zobrazí ten můj DIV. Akorát že ho právě umím akorat absolutně pozicovat a chtěla bych ho mít zobrazený jako je to v tom kódu výše, čili u toho odkazu. To by mělo jít i bez AJAXU ne?
Fisir
Profil
Reaguji na veroniku [#3]:
Víš vůbec na co je AJAX? AJAXem docílíš toho, aby se do <div>u načetla nějaká další stránka bez znovunačtení té původní.

Můžeš to udělat nějak takto:

<script>
function zobrazNacti(co,adresa){
    var xmlhttp;
    if (window.XMLHttpRequest) {  // Kód pro IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      } else {  // Kód pro IE6 a IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4 && xmlhttp.status==200){
        document.getElementById(co).innerHTML=xmlhttp.responseText;
        document.getElementById(co).setAttribute("style","display: block");
        }
      }
    xmlhttp.open("GET",adresa,true);
    xmlhttp.send();
}
</script>
<a href="javascript: zobrazNacti('box','http://www.google.com')">Ukaž</a>
<div id="box">

</div>
veronika
Profil *
AJAX vim na co je ale já nepotřebuju načítat nějakou jinou stránku, já chci jenom informativní DIV který se mi zobrazí tam kde kliknu a to mi ani ten tvůj kód neuděla a stejně mi ta tvá ukázka nefunguje.
suvel
Profil
Dá se to udělat třeba tak, že si kamkoli do stránky vložíš prázdný div:
<div id="sem"></div>
a pomocí onclick do něho pošleš tvůj text:
window.document.getElementById("sem").style.top = pozicey+"px";
window.document.getElementById("sem").style.left = pozicex+"px";
window.document.getElementById("sem").innerHTML = "ahoj, právě bylo kliknuto";
(doufám, že je to správně, píšu to po paměti :-)
Na zjištění pozice, kam se kliklo, (aby to fungovalo ve všech prohlížečích) je tady spousta skriptů...
Snad to pomůže.
Radek9
Profil
Fisir:
Víš vůbec na co je AJAX?
Evidentně ano. Popisovala přesně to, co chce. Na to AJAX vskutku vůbec není potřeba. Příště lépe čti. Jinak, ještě drobná kritika:
Řádek 12: Tohle by někde mohlo blbnout (např. ve starších verzích prohlížečů), lepší je využít přímo objekt style, který je defaultně na každém elementu.

veronika:
Jednoduše řečeno: DIVům defaultně nastavit display: none; position: absolute; a po kliku na odkaz nastavit danému divu display: block; a popřípadě si z eventu vytáhnout pozici kliku. Pokud budeš chvíli hledat, najdeš plno hotových řešení.
Fisir
Profil
Reaguji na Radka9 [#7]:
Ve veroniky kódu bylo otevírané nové okno s další stránkou. Z toho jsem usoudil, že tam chce mít další stránku.
_es
Profil
Radek9:
Řádek 12: Tohle by někde mohlo blbnout (např. ve starších verzích prohlížečů), lepší je využít přímo objekt style na každem elementu.
Alebo použiť vlastnosť className.
Radek9
Profil
Fisir:
Cituji:
aby se mi místo nového okna zobrazil na tom samém místě po kliknutí DIV s nějakým textem
Takže stěžejním problémem je to „na tom samém místě“.

_es:
Pokud jde jen o display, tak je to podle mě trošku zbytečnost.
Someone
Profil
veronika:
Něco takového?
veronika
Profil *
Someone:
Jo něco takového jsem měla na mysli. Ještě to zkusím upravit aby se mi to otevíralo u kliku (cursoru).
veronika
Profil *
Someone:
Mohu mít na tebe ještě dotaz?
Když na stránce roluji dolu, kde budu mít teprve odkaz na zobrazení toho divu a clony, tak se mi pak ta clona a div zobrazí úplně nahoře a ne přes celou obrazovku je jakoby useklá, jestli mi rozumíš. Jde to udělat aby se to vždy zobrazovalo na aktuální pozici podle toho kde na stránce jsem?
Someone
Profil
Cloně nastav místo position absolute, position fixed
veronika
Profil *
Someone:
Je to to samé
Someone
Profil
Není
veronika
Profil *
A ještě jedna otázka, mohu ten tvůj příklad použít i třeba u odkazu:
<a href='zbozi.php?akce=pridej'><img src='images/kosik.png' onclick=\"zmena('boxkosik')\"></a>
Když to takhle ale udělám tak se mi to nezobrazí, respektive hned to zmízí, jde mi to jenom když tam nemám ten odkaz na zbozi.php, ale ja bych potřebovala předat si ten parametr akce a kontrolovat zda to bylo stisknuto.
Děkuji


[#16] Someone
Clona je sice přes celé ale ten Div je nahoře, a měl by být asi uprostřed té stránky aby nebyl useklí
Someone
Profil
Jde o to, že ty kikneš na odkaz, provede se script a aktualizace způsobena odkazem div zase skryje.
veronika
Profil *
[#18] Someone
Jo to chápu ale jak bych to měla vyřešit?


Tak at to zkousim jak zkousim ne a ne to jit

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: