| | |
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Autor | Správa |
---|
Registrovaný: 12.05.08 Prihlásený: 28.12.13 Príspevky: 117 Témy: 29 |
Ahojte,
mam nasledovny kod:
...
Kód: <form name="rssform" onSubmit="getRSS(); return false;"> <select name="rssurl"> <option value="test.rss" selected>Test</option> <option value="http://www.xy.sk/test.rss/">Test2</option> </select> <input type="submit" value="načítaj rss" /> </form> Otazka znie..., ked si zvolim test a teda subor test.rss mam lokalne v sieti, vsetko je ok. Akonahle chcem vsak nacitat ten isty subor, ale cez zadanie externej celkovej adresy, neudeje sa tak. Otazka, co je v casti: Kód: <option value="http://www.xy.sk/test.rss/">Test2</option>
zle? Ako odkazat na externy subor?
Dik!
| Kody vkladaj do znacky [code]. Ďuri
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 26.03.2010 21:01 | |
|
Daj odkaz na zivu ukazku alebo aspon predpis fcie getRSS().
|
|
Registrovaný: 12.05.08 Prihlásený: 28.12.13 Príspevky: 117 Témy: 29 | Napísal autor témy pkrajnak: 26.03.2010 21:06 | |
|
posielam kod, lebo pri zivej ukazke proste externe rss nenacita, len ak si ho ulozim na lokalny disk, resp. do adresara webu...:
Kód: <form name="rssform" onSubmit="getRSS(); return false;"> <select name="rssurl"> <option value="XY.rss" selected>RSS1</option> <option value="http://www.web.sk/XY.rss/">RSS2</option> </select> <input type="submit" value="načítaj rss" /> </form>
<div class="rss" id="chan"> <div id="chan_title"></div> <div id="chan_link"></div> <div id="chan_description"></div> <a id="chan_image_link" href=""></a> <div id="chan_items"></div> <div id="chan_pubDate"></div> <div id="chan_copyright"></div> </div>
system teda funguje cez jump menu, vyberiem prvu polozku, nacita sa prve rss, ak druhu, tak druhe. Teraz som len pre ilustraciu zadefinoval nacitanie jedno interne a druhe cez externy odkaz. Pretoze ak chcem ukazat rss z druheho webu, tak je zbytocne si to ukladat na vlastny web... no a este ta funkcia: Kód: function getRSS() { //call the right constructor for the browser being used if (window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) xhr = new XMLHttpRequest(); else alert("not supported");
//prepare the xmlhttprequest object xhr.open("GET",document.rssform.rssurl.value,true); xhr.setRequestHeader("Cache-Control", "no-cache"); xhr.setRequestHeader("Pragma", "no-cache"); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status == 200) { if (xhr.responseText != null) processRSS(xhr.responseXML); else { alert("Failed to receive RSS file from the server - file not found."); return false; } } else alert("Error code " + xhr.status + " received: " + xhr.statusText); } }
//send the request xhr.send(null); }
| Kod uzatvaras pomocou [/code]. Mas tu aj tlacitko Nahlad, takze si mozes vyskusat, ci si BBKody pouzil spravne. Ďuri
| Nepis viac prispevkov za sebou, pouzivaj tlacitko Uprav. Ďuri
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 27.03.2010 9:26 | |
|
Problem je ten, ze Ajaxom sa nemozes spajat s cudzou domenou.
|
|
Registrovaný: 12.05.08 Prihlásený: 28.12.13 Príspevky: 117 Témy: 29 | Napísal autor témy pkrajnak: 28.03.2010 13:15 | |
|
Ďuri píše: Problem je ten, ze Ajaxom sa nemozes spajat s cudzou domenou.
Dik za info. Ako to potom vyriesit? Resp. ako formou stiahnut rss externeho webu do svojej lokality, aby sa to dialo automaticky?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 28.03.2010 13:34 | |
|
PHPckom (curl, file_get_contents, wget). Pripadne by si mohol pouzivatela iba jednoducho presmerovat pomocou document.location, ci to nie je dobre?
Este k tomu tvojmu JS kodu mala poznamka - odporucam vzdy najprv testovat podporu pre standardne vlastnosti a potom pre tie propertialne, tzn. najprv skontroluj XMLHttpRequest a potom ActiveXObject.
|
|
Registrovaný: 12.05.08 Prihlásený: 28.12.13 Príspevky: 117 Témy: 29 | Napísal autor témy pkrajnak: 28.03.2010 18:28 | |
|
Ďuri píše: PHPckom (curl, file_get_contents, wget). Pripadne by si mohol pouzivatela iba jednoducho presmerovat pomocou document.location, ci to nie je dobre? Este k tomu tvojmu JS kodu mala poznamka - odporucam vzdy najprv testovat podporu pre standardne vlastnosti a potom pre tie propertialne, tzn. najprv skontroluj XMLHttpRequest a potom ActiveXObject.
Ako presne si to myslel s tym presmerovanim pomocou document.location? Vedel by si mi to bližšie prosím vysvetliť?
Druhej poznamke celkom nerozumiem? Nie som 100% odbornik, co si tym chcel povedat?
P.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 28.03.2010 19:22 | |
|
Myslel som, ze ti staci, aby sa pouzivatel dostal na konkretny rss subor, co by sa dalo vyriesit jednoduchym presmerovanim. Ale pozeram, ze chces s RSSkom dalej pracovat (mas tam nejaku fciu processRSS), takze je moja rada irelevantna. Sprav to tak, ze ak bude adresa zacinat na http:// Kód: if (document.rssform.rssurl.value.match(/^http:\/\//) ...tak budes nacitavat nejaky tvoj interny subor, uvediem priklad: Kód: xhr.open("GET","subor-pre-ziskanie-cudzieho-rss.php?adresa="+encodeURIComponent(document.rssform.rssurl.value),true); Nasledne sa v subore subor-pre-ziskanie-cudzieho-rss.php pokusis stiahnut a zobrazit subor $_GET['adresa'], to by islo (ak vsetko dobre pojde) aj takto: Kód: <?php header('content-type: application/xml'); //POZOR! $_GET['adresa'] treba osetrit, inak sa ti hocikto moze hrabat v skriptoch. Minimalne skontroluj, ci sa zacina na http://. readfile($_GET['adresa']); ?> ...a malo by to ist. Inak pre Ajax medzi domenami by bolo mozne pouzit XDomainRequest, ale jednak to nepodporuju vsetky prehliadace, a jednak tam musi byt aj nejake povolenie zo strany servera, ktory volas, cize nepouzitelne. Co sa tyka mojej druhej poznamky - je taka zasada, ze v prvom rade by mal prehliadac pouzivat standardne metody, a az ak nie su dostupne, tak tie propertialne. V tvojom kode napriklad Explorer 7 pouzije nestandardny ActiveXObject miesto XMLHttpRequestu, aj ked ma podporu pre oba. Konkretne v tvojom kode by to nemalo nijak vadit, kedze neviem o ziadnej nekompatibilite medzi XMLHttpRequest a XMLHTTP cez ActiveX, ale je to dobry zvyk a mozno ti to niekedy pomoze. Takze takto: Kód: if (window.XMLHttpRequest) xhr = new XMLHttpRequest(); else if (window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP"); else alert("not supported"); Jo a este jedna poznamka - Linuxovy prehliadac Konqueror nepodporuje XML a teda ani responseXML. Je teda dobre upovedomit pouzivatelov, ze nieco nie je dobre, inak sa budu cudovat, ze klikaju a nic sa nedeje. Kód: if (!xhr.responseXML) { alert('Trikrat hanba vasmu prehliadacu'); }
|
|
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| OPTION v PHP, ASP | 2 | 497 | 05.02.2008 14:38 max-m | | Gamepad option ? v Externé zariadenia | 10 | 1039 | 14.01.2011 22:39 jokerit68 | | Select option v HTML, XHTML, XML, CSS | 5 | 580 | 06.06.2017 10:12 hatto13 | | SELECT OPTION v HTML, XHTML, XML, CSS | 3 | 551 | 06.03.2009 14:34 Ďuri | | linky v select - option v JavaScript, VBScript, Ajax | 3 | 589 | 01.07.2009 21:38 neopagan | | select option a php v PHP, ASP | 9 | 770 | 05.03.2008 22:16 shaggy | | orange option 3g modem ovladac??? v Ovládače | 1 | 2700 | 07.10.2008 17:29 kolci | | mousemove event pre html option v JavaScript, VBScript, Ajax | 5 | 548 | 07.03.2012 22:17 phodinux | | Select a option pomocou JavaScriptu v JavaScript, VBScript, Ajax | 8 | 695 | 28.12.2008 23:12 blackman545 | | textarea value v HTML, XHTML, XML, CSS | 5 | 477 | 26.10.2009 18:37 pilná lama glama | | vyprázdnenie value v JavaScript, VBScript, Ajax | 13 | 588 | 30.07.2009 9:30 Draex | | P: Option 3G/EDGE PCMCIA modem v Predám | 0 | 364 | 16.02.2011 1:47 danoon | | MySQL default value v Databázy | 3 | 719 | 30.05.2010 18:05 DARSON | | odoslanie button value v JavaScript, VBScript, Ajax | 3 | 582 | 18.09.2009 14:02 pilná lama glama | | SB Live Value v Zvuk | 4 | 925 | 01.10.2005 10:11 Lukas[CZE] | | href value z iframe v JavaScript, VBScript, Ajax | 2 | 357 | 04.09.2012 13:20 neopagan |
| 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
|
|