| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 14.04.09 Prihlásený: 18.01.22 Príspevky: 1188 Témy: 198 |
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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
_________________ 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 |
|
Registrovaný: 14.04.09 Prihlásený: 18.01.22 Príspevky: 1188 Témy: 198 | Napísal autor témy 1daemon1: 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 |
|
Registrovaný: 14.04.09 Prihlásený: 18.01.22 Príspevky: 1188 Témy: 198 | Napísal autor témy 1daemon1: 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 |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 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>
|
|
Registrovaný: 14.04.09 Prihlásený: 18.01.22 Príspevky: 1188 Témy: 198 | Napísal autor témy 1daemon1: 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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 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.
|
|
Registrovaný: 14.04.09 Prihlásený: 18.01.22 Príspevky: 1188 Témy: 198 | Napísal autor témy 1daemon1: 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 |
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Viac stránok na jednom webhostingu? v Webhosting a servery | 1 | 1217 | 03.04.2006 22:47 JanoF | | viac dis. na jednom disku v Operačné systémy Unix a Linux | 6 | 601 | 09.03.2008 11:52 johny3212 | | viac balikov office na jednom PC v Operačné systémy Microsoft | 3 | 511 | 03.08.2011 22:59 shiro | | Viac pripojení k Internetu na jednom servery v Siete | 8 | 717 | 10.05.2007 16:57 Euro | | 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 | | Dá sa prevadzkovat viac domen na jednom servery? v Domény | 9 | 929 | 03.03.2010 21:02 Blackdevil | | 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 | | Viac USB Bluetooth adaptérov v jednom USB porte. v Ostatné | 0 | 403 | 06.05.2014 9:23 heyitsedward | | onload v JavaScript, VBScript, Ajax | 3 | 714 | 21.11.2008 13:44 rooobertek | | onload v JavaScript, VBScript, Ajax | 6 | 644 | 14.02.2010 9:20 juho | | focus onload v JavaScript, VBScript, Ajax | 2 | 672 | 16.08.2009 17:01 def | | Linkovanie v dokumente v HTML, XHTML, XML, CSS | 1 | 459 | 07.07.2011 14:26 Ďuri | | zmena datumu vytvorenia v dokumente v Ostatné programy | 3 | 1007 | 02.08.2008 9:03 wave | | časove udalosti v Delphi, Visual Basic | 3 | 685 | 24.05.2011 8:36 Fico | | obrazkove prilohy v dokumente word 2003-2007 v Operačné systémy Microsoft | 6 | 356 | 16.05.2013 23:35 capricorn7 | | Validator hlasi 2 chyby v XHTML dokumente v HTML, XHTML, XML, CSS | 3 | 430 | 06.06.2010 21:51 shaggy |
| 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
|
|