Autor | Zpráva | ||
---|---|---|---|
Maj7 Profil |
#1 · Zasláno: 23. 12. 2006, 16:44:28
Zdravím,prosím ještě jednou o radu ohledně otvírání nových oken,které se po kliknutí na ně samy zavřou.
Mám tento script nakopírovaný z této diskuze: <script Language="JavaScript" type="text/javascript"> <!-- // Hlavní funkce zobrazující obrázek function ShowFoto (Img, W, H){ // Zjistí rozlišení monitoru (velikost obrazovky) var Browser = navigator.appName; var Version = parseInt(navigator.appVersion); if ((Browser == "Netscape" & Version >= 4) || (Browser == "Microsoft Internet Explorer" & Version >= 4)){ ScrH = screen.height; ScrW = screen.width; } else { ScrH = 0; ScrW = 0; } // Vypočítání správné velikosti a souřadnic pozice nového okna var BorderW = 1; W += 2*BorderW; H += 2*BorderW; var Position; if ((ScrH > 0) && (ScrW > 0)) Position = ",left="+(ScrW - W)/2+",top="+(ScrH-H)/2; else Position = ""; // Vytvoření nového okna var NewWin = window.open("", "Fotografie", "toolbar=no,location=no,width="+W+",height="+H+ ",directories=no,status=no,menubar=no,"+ "resizable=no,scrollbars=no"+ Position); // Naplnění - zapsání zdrojového kódu nového okna with (NewWin.document){ write("<HTML><HEAD><TITLE>Foto - kliknutím zavřete"+ "</TITLE></HEAD>"); write('<BODY BgColor="black" Text="white"'+ ' TopMargin="0" LeftMargin="0">'); write('<A Href="javascript:close();"><IMG Src="'+Img+ '" HSpace="'+BorderW+'" VSpace="'+BorderW+'" Border="0"></A>'); write("</BODY></HTML>"); close(); } } // --> </script> Tento příklad jde bez problému: <a href="javascript:ShowFoto ('soubory_obrazek.JPG',476,300)"> <img src="soubory_katalog/anese1.jpg" alt="titulek obrázku" width="102" height="77"></a> Další co jste zde zmiňovali za příklady jsou tyto: <a href="target.html" onclick="window.open(this.href,'blank','scrollbars=yes,resizable=yes') ; return false">Text</a> tento příklad by měl být validní,ale nejde nastavit rozměr rámečku a po kliknutí na něj se okno nezavře. Další třetí: <a href="target.html" onclick="return !window.open(this.href,'blank','scrollbars=yes,resizable=yes')">Text</ a> to je úprava pro ty, co mají zablokovaná popup okna... Tento příklad bych bral aby ty kdo mají bloklí okna aby se jim to otevřelo.Ale zase jak nastavit rozměr rámečku a aby se se po kliknutí sám zavřel. Pak jsem v dizkuzích našel Váš poslední příklad: <a href="stranka.html" onclick="return !window.open(this.href, '_blank', 'width=400,height=500');"> ale tady ikdyž jsou nastaveny rozměry my to v prohlížeči stejně otvírá celou šíři okna a nerespektuje rozměry. Mockrát Vás prosím o radu protože na učení javascriptu nemám čas a nějak se ho zatím bojím.Díky!!! |
||
peta Profil |
#2 · Zasláno: 23. 12. 2006, 17:41:37
!window.open(this.href, '_blank', 'width=400,height=500');
!window.open(this.href, '_blank', 'width=400,height=500'); toto fungovat nemuze, protoze nazev okna (name) smi obsahovat znaky AZaz90 a musi zacinat pismenem window.open(URL,NAME,PARAM); href="javascript:ShowFoto ('soubory_obrazek.JPG',476,300)" toto je zas naprosto zbytecne, protoze bez JS se ti neotevre nic a v href by JS nemel byt <a href="stranka.html" target="foto" onclick="return fff(this)"> <script> function fff(Xthis) { var a,b,c,reg; a=Xthis.target; a.toLowerCase(); if (a=="_blank") {a=="";} else {reg=new RegExp("[^a-zA-Z0-9]","g"); a=a.replace(reg,"");} b = window.open(Xthis.href, a, 'width=400,height=500'); c = Boolean(b); if (c) { b.document.onclick=window.close(); if (Boolean(b.focus())) {b.focus();} } return (!c); } </script> Nezkouseno, ale uz si s tim poradis. Pokud bys mel problemy: jakpsatweb - javascript - priklady jakpsatweb - javascript - objekt window |
||
Maj7 Profil |
#3 · Zasláno: 23. 12. 2006, 17:46:04
Mockrát Ti dík,jdu zkoušet,už jsem na to šachování zvyklej,když tomu člověk nerozumí.Dík.
|
||
Bubák Profil |
#4 · Zasláno: 23. 12. 2006, 18:54:30
toto fungovat nemuze, protoze nazev okna (name) smi obsahovat znaky AZaz90
Tos sis vycucal ze kterého prstu? http://www.w3.org/TR/WD-html40-970917/present/frames.html#h-17.2.3 Ve kterém prohlížeči to nefunguje? <a href="http://www.jakpsatweb.cz" onclick="return !window.open(this.href,'_blank', 'width=700,height=250');">at zije peta</a> |
||
Maj7 Profil |
#5 · Zasláno: 23. 12. 2006, 19:29:45
Dal jsem to předtím s tím starým příkladem na web a nefungovalo to du to zkusit.Zatím dík,napíšu jestli to jede.
|
||
Maj7 Profil |
#6 · Zasláno: 23. 12. 2006, 19:44:22
Takže se to chová takto. V Firefoxu se to zobrazuje správně.
V IE se to otevře přes celou obrazovku v tom samým okně. V Opeře se to otevře dobře,ale dá se okno ještě zvětšit. Co s tím? <script Language="JavaScript" type="text/javascript"> <!-- function fff(Xthis) { var a,b,c,reg; a=Xthis.target; a.toLowerCase(); if (a=="_blank") {a=="";} else {reg=new RegExp("[^a-zA-Z0-9]","g"); a=a.replace(reg,"");} b = window.open(Xthis.href, "width=400,height=500") c = Boolean(b); if (c) { b.document.onclick=window.close(); if (Boolean(b.focus())) {b.focus();} } return (!c); } // --> </script> <a href="soubory_fotogalerie/12.jpg" onclick="return !window.open(this.href,'_blank', 'width=700,height=450');"> <img src="soubory_fotogalerie/12.jpg" alt="12.jpg, 17 kB" title="12" width="235" height="164" /></a> |
||
los Profil * |
#7 · Zasláno: 24. 12. 2006, 01:37:26
V Firefoxu se to zobrazuje správně.
Ok. V IE se to otevře přes celou obrazovku v tom samým okně. Zrejme popup blocker zablokoval nové okno, tak sa to otvorilo v tom istom. V Opeře se to otevře dobře,ale dá se okno ještě zvětšit. Nevidím tam nikde nastavenie resizable, takže to chovanie je v poriadku. Co s tím? Najjednoduchšie bude zabudnúť na funkciu fff a použiť to, čo fungovalo. Dobré by bolo dať to do externého súboru, vyhodiť odtiaľ tú zbytočnú detekciu prehliadača a napísať to slušnejšie. |
||
peta Profil |
#8 · Zasláno: 24. 12. 2006, 10:07:20
Bubák
" toto fungovat nemuze, protoze nazev okna (name) smi obsahovat znaky AZaz90 Tos sis vycucal ze kterého prstu? http://www.w3.org/TR/WD-html40-970917/present/frames.html#h-17.2.3 " Hned prvni veta, chytraku. Except for the reserved names listed below, target names must begin with an alphabetic character (a-zA-Z). User agents should ignore all other target names. mimo jine bavime se o javascript window.open() sem zvedavy, jak bys adresoval okno s name="_blank" window._blank.document ? |
||
Bubák Profil |
#9 · Zasláno: 24. 12. 2006, 10:40:42
Myslím, že se shodneme, že "AZaz90" není to samé, jako "a-zA-Z"
Hned prvni veta, chytraku. A co znamená tprvní část té věty, mám ti to snad přeložit? Except for the reserved names listed below A níže uvedené vyhrazené jména jsou: _blank _self _parent _top sem zvedavy, jak bys adresoval okno s name="_blank" Přestože se na to Maj7 neptá, tak to "rád" odpovím. Okno s name="_blank" jsem nikdy neadresovel, nepotřeboval jsem to, a nehodlám si zbytečným hledánám a testováním zkazit vánoce. Můžu ti však prozradit, že s adresováním okna s name="_top", "_parent", "_self" nemám žádný problém, takové okno je vždy jen jedno, kdežto oken s name="_blank" můžu otevřít "tisíce". window._top.document? - to asi nebude dobře, dělá se to jinak. jpw javascript window |
||
peta Profil |
#10 · Zasláno: 24. 12. 2006, 15:49:43
Bubák
Ok, tak je mozne, ze to zrovna v tomto pripade funguje. Aspon jsem to ted testoval v IE a FF a toto jelo. Nevis, jak na tom jsou starsi verze? Osobne bych se tomu vyhl, protoze tyhle veci se prepisuji v objektu. |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0