Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 18.01.22
Príspevky: 1188
Témy: 198
Príspevok NapísalOffline : 28.12.2012 12:45

Zdravím. Mám script, ktorý sa celý vykonáva pri udalosti window.onload. Chcem, aby si ktokoľvek mohol tento script vložiť na svoj web týmto spôsobom:
Kód:
<script type="text/javascript" src="cesta k suboru"></script>

Problém je, že pokiaľ bude za týmto kódom znova definovaná window.onload funkcia, prepíše sa tá z môjho súboru, ktorý si niekto vložil na web. Ako to spraviť tak, aby som užívateľa neobmedzil v použití window.onload za mojím scriptom ? Ďakujem.







_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
Offline

Správca fóra
Správca fóra
viac udalostí window.onload v jednom dokumente

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.12.2012 16:16

Mozno pomoze, neskusal som: http://www.tek-tips.com/faqs.cfm?fid=4862







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 18.01.22
Príspevky: 1188
Témy: 198
Príspevok Napísal autor témyOffline : 28.12.2012 18:27

Vela som googlil a nasiel som podobne riesenia. Ale toto mi bohuzial nepomoze. Pokial mi nieco neuniklo, tymto sice mozem zaregistrovat viac udalosti onload, ale musel by som uzivatela nutit pouzivat tu funkciu, ktora je v tom clanku. Jednoducho neriesi to uplne tento problem: uzivatel pouzije moj kod na vlozenie mojho externeho JS, ten sa spracuje az ked bude dokument cely nacitani a uzivatel moze pred vlozenim alebo po nom pouzivat window.onload.

Najradsej by som bol, ak by som vedel riesenie toho, ako pouzit viac onload udalosti a neobmedzit uzivatela v pouziti window.onload = ...
Asi to ale nie je mozne, takze trochu upresnim to, o co sa pokusam. Nechcem tu davat cely kod avsak to co napisem bude stacit.

V scripte ktory uzivatel includuje sa udeje toto:
Kód:
   function moja_funkcia() {
      var imgs = new Array;
                var class_name = 'nieco';
         function getElementsByClassName(node,classname) {
              if (node.getElementsByClassName) {
                return node.getElementsByClassName(classname);
              } else {
               return (function getElementsByClass(searchClass,node) {
                    if ( node == null )
                      node = document;
                    var classElements = [],
                        els = node.getElementsByTagName("*"),
                        elsLen = els.length,
                        pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"), i, j;

                    for (i = 0, j = 0; i < elsLen; i++) {
                      if ( pattern.test(els[i].className) ) {
                          classElements[j] = els[i];
                          j++;
                     }
                    }
                   return classElements;
                })(classname, node);
              }
         }
         
         imgs = getElementsByClassName(document, class_name);

        ... Tu sa spracuju najdene obrazky. Aby som mohol vyhladat vsetky obrazky podla triedy, musim mat nacitany dokument...







_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 18.01.22
Príspevky: 1188
Témy: 198
Príspevok Napísal autor témyOffline : 29.12.2012 16:27

Stale hladam ako to vyriesit ale este ma napadla jedna myslienka. Ja asi nepotrebujem, aby boli samotne obrazky nacitane, ale aby bol nacitany cely dokument so vsetkymi urcitej triedy. Cize mi staci <script> znacku presunut na koniec celeho dokumentu. K tomu ale nechcem nutit uzivatela a tak potrebujem, aby sa tam cely kod presunul sam. Alebo nieco na ten princip ale neviem ako to spravit. Vedeli by ste mi nieco ohladom toho poradit prosim ?







_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
Offline

Čestný člen
Čestný člen
viac udalostí window.onload v jednom dokumente

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 29.12.2012 22:47

Ak includujes "neznamy" javascript do dokumentu a nevies, ci ti prepise window.onload, tak by som to riesil nejak takto (pisane z hlavy, ale malo by ist):
Kód:
<script>
var oldonload = window.onload;
</script>
<script src=nieco.js></script>
<script>
if (oldonload !== window.onload) { // handler bol prepisany
   var newonload = window.onload;
   window.onload = function() {
      oldonload();
      newonload();
   };
}
</script>


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 18.01.22
Príspevky: 1188
Témy: 198
Príspevok Napísal autor témyOffline : 29.12.2012 23:10

Mozno som to trochu nejasne opisal.
Mne ide prave o to, aby si mohol ktokolvek includovat moj skript a navzajom sa jeho zdrojovy kod s mojim skriptom neprepisoval udalostou .onload. Duri, to co si napisal, by samozrejme fungovalo ale chcem, aby bolo includovanie mojho skriptu jednoduche. Prave preto nechcem obmedzovat uzivatela, aby musel pouzivat taketo kody s ktorymi si zalohuje povodny onload.

// Dam priklad. Ja uzivatelovi necham kod, ktory si moze dat na web, takyto kod:
Kód:
<script src="..."></script>

jeho obsah bude:
Kód:
window.onload = function() {
...kod na spracovanie obrazkov...
};

Chcem aby sa uzivatel nemusel zaoberat tym, co je v mojom skripte ktory si vlozil a aby mohol vlozit moj kod do svojho webu ktory bude vyzerat takto:
Kód:
<html>
<head>...</head>
<body>
<script src="cesta k mojmu skriptu"></script>
obsah webu
<script>
window.onload = function() {
...akykolvek uzivatelov kod...
};
</script>
</body>
</html>







_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
Offline

Správca fóra
Správca fóra
viac udalostí window.onload v jednom dokumente

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 30.12.2012 10:03

Tak mi teraz napadlo, neskusal si pouzit addEventListener namiesto onload?







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Čestný člen
Čestný člen
viac udalostí window.onload v jednom dokumente

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 30.12.2012 10:57

Takymto sposobom si naozaj vzdy uzivatel window.onload prepise. Ako pise stenley, jedine pouzit addEventListener, resp. attachEvent pre starsie Explorery.
Daj pozor na to, ze ak attachujes viac handlerov pre jeden event pomocou addEventListener, spustia sa v poradi, v akom si ich attachol, ale pri attachEvent to poradie moze byt opacne-- preto by jednotlive handlery mali byt uplne nezavisle.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 18.01.22
Príspevky: 1188
Témy: 198
Príspevok Napísal autor témyOffline : 30.12.2012 11:16

Dakujem vam, mate pravdu funguje to. Ja som to skusal uz pred tym ked som si to vsimol v stenleyho prvom linku ale asi som nieco vtedy napisal zle, pretoze mi to nefungovalo.







_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Viac stránok na jednom webhostingu?

v Webhosting a servery

1

1217

03.04.2006 22:47

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. viac dis. na jednom disku

v Operačné systémy Unix a Linux

6

601

09.03.2008 11:52

johny3212 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. viac balikov office na jednom PC

v Operačné systémy Microsoft

3

511

03.08.2011 22:59

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Viac pripojení k Internetu na jednom servery

v Siete

8

717

10.05.2007 16:57

Euro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Viac prihlásení v jednom prehliadači - je to možné?

v Sieťové a internetové programy

14

704

27.07.2011 15:09

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dá sa prevadzkovat viac domen na jednom servery?

v Domény

9

929

03.03.2010 21:02

Blackdevil Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Môžem nainštalovať dve alebo viac hier súčasne na jednom pc?

v Počítačové hry

9

965

23.08.2009 18:59

reDo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Viac USB Bluetooth adaptérov v jednom USB porte.

v Ostatné

0

403

06.05.2014 9:23

heyitsedward Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. onload

v JavaScript, VBScript, Ajax

3

714

21.11.2008 13:44

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. onload

v JavaScript, VBScript, Ajax

6

644

14.02.2010 9:20

juho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. focus onload

v JavaScript, VBScript, Ajax

2

672

16.08.2009 17:01

def Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Linkovanie v dokumente

v HTML, XHTML, XML, CSS

1

459

07.07.2011 14:26

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmena datumu vytvorenia v dokumente

v Ostatné programy

3

1007

02.08.2008 9:03

wave Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. časove udalosti

v Delphi, Visual Basic

3

685

24.05.2011 8:36

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. obrazkove prilohy v dokumente word 2003-2007

v Operačné systémy Microsoft

6

356

16.05.2013 23:35

capricorn7 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Validator hlasi 2 chyby v XHTML dokumente

v HTML, XHTML, XML, CSS

3

430

06.06.2010 21:51

shaggy Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra