![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 1 Dołączył: 5.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Piszę na własne potrzeby coś podobnego do Google Adsense. Zrobiłem wszystko dobrze, ale mam jednen problem. Mogę umieścić tylko jeden banner na stronie. Kawałek kodu java script:
// Funkcja odpowiedzialna za pobranie html'a bannera (pobiera b. dobrze) function Response() { var text = ajaxreq.responseText; div = document.getElementById("box_" + id_box); div.innerHTML = text; } Kod HTML, który wklejam na stronę: Chodzi o to aby móc wkleić ten kod 2, 3 a nawet 50 razy za każdym razem używając innego parametru id_box (obecnie pokazuje tylko dla ostatniego). Kod HTML nie może się zbyt różnić od tego . (chce by osoby, które nie mają zbyt pojęcia o stronach mogly go wklejac w odpowiednie miejsce i miec banner a nie bawić się w edycje kilku elementów strony). Problem polega na tym, że pobiera tylko ostatnia wartość id_box (i dla niej ustawia banner, wcześniejsze są ignorowane). Bardzo proszę forum o pomoc. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Nie za bardzo rozumiem.... Zrób funkcję:
Kod unction Response(id) { var text = ajaxreq.responseText; div = document.getElementById("box_" + id); div.innerHTML = text; } /////////////////// // i /////////////////// <script type="text/javascript">Response(1);Response(2);Response(100);Response(5);</script> Tylko nie wiem czy to o to chodziło, a wydaje mi się, że nie. Opisz może bardziej opierając się na kodzie(jak chcesz, żeby wyglądało wywołanie odpowiedniego baneru ) -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 1 Dołączył: 5.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam skrypt:
var ajaxreq = ajaxRequest(); var url = 'http://pages.homelinux.com/adsense/public/banner/get/id/' + id_box; process3(); function process3() { if(ajaxreq) { ajaxreq.open("GET", url, true); ajaxreq.onreadystatechange = Handle3; ajaxreq.send(null); } } function Handle3() { if(ajaxreq.readyState == 4 && ajaxreq.status == 200) { Response3(); } } function Response3() { var text = ajaxreq.responseText; div = document.getElementById("box_" + id_box); div.innerHTML = text; } function ajaxRequest() { try { ajaxreq = new XMLHttpRequest(); } catch(error) { try { ajaxreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch(error) { return false; } } if(!ajaxreq) return false; else return ajaxreq; } Pojedyńczy banner uruchamiam: i jeśli raz wkleje taki kod na strone to nie ma problemu, banner zostaje wyświetlony. Natomiast jeśli zrobię coś takiego: (W tym przykładzie chciałbym 3 bannery - dwa boxy o idzie 98 i jeden id = 100) , bannery powinny pojawiac się w miejscu w ktore wkleiłem (<div id="box_X"></div>) . Problem polega na tym, że tylko raz zachodzi połączenie z serwerem tylko dla ostatniego idu (w tym przypadku dla id_box = 100). Mam nadzieje, ze teraz rozjaśniłem bardziej sytuacje. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Cytat Mam nadzieje, ze teraz rozjaśniłem bardziej sytuacje. Jest znacznie lepiej ![]() Kod function addBaner(id_box){ var ajaxreq = ajaxRequest(); var url = 'http://pages.homelinux.com/adsense/public/banner/get/id/' + id_box; process3(); function process3() { if(ajaxreq) { ajaxreq.open("GET", url, true); ajaxreq.onreadystatechange = Handle3; ajaxreq.send(null); } } function Handle3() { if(ajaxreq.readyState == 4 && ajaxreq.status == 200) { Response3(); } } function Response3() { var text = ajaxreq.responseText; div = document.getElementById("box_" + id_box); div.innerHTML = text; } function ajaxRequest() { try { ajaxreq = new XMLHttpRequest(); } catch(error) { try { ajaxreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch(error) { return false; } } if(!ajaxreq) return false; else return ajaxreq; } } i wywołanie Kod <script src="http://pages.homelinux.com/adsense/public/js/getbanner.js" type="text/javascript"></script> <script> addBaner(98); addBaner(99); addBaner(100); </script> <div id="box_98"></div> <div id="box_99"></div> <div id="box_100"></div> W podanym przez Ciebie kodzie 3 razy uruchamiałeś ten sam baner(98), jednak to jest błąd i mam nadzieję, że był to tylko przykład. Błąd polega na tym, że id jest unikatowe i nie może się powtarzać. --edit A jednak to nie jest błąd... W takim razie przekształć funkcję na: addBaner(id_baneru, id_elementu); lub pobaw się z np. getElementsByName Ten post edytował kamil4u 4.01.2011, 16:14:07 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 1 Dołączył: 5.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie szukam takiego rozwiązania jakie oferuje Google Adsense. Czyli mogę wklejać:
<script type="text/javascript"><!-- google_ad_client = "pub-9191175133602823"; /* 300x250, utworzono 11-01-04 */ google_ad_slot = "9767482761"; google_ad_width = 300; google_ad_height = 250; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> Dowolnie razy i w dowolne miejsce , Twoje rozwiązanie jest dobre, ale zależy mi na tym aby to było user friendly (takie coś jak Ty podałeś będzie wymagało wklejenia kodu do <head></head> i potem ustawienie poszczególnych div'ów na stronie a nie o to mi chodzi tylko > wklejam kod i jest banner w danym miejscu. Mam nadzieje, że teraz rozjaśniłem o co dokładnie mi chodzi ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Moje rozwiązanie jest dużo lepsze dla użytkownika. Nie traktuj ludzi jak całkowitych debili. Tym moim rozwiązaniem też nie musisz wrzucać kodu do <head>, aczkolwiek,byłoby lepiej
![]() Kod //objętnie gdzie wklejasz to: <script src="http://pages.homelinux.com/adsense/public/js/getbanner.js" type="text/javascript"></script> //A to w miejscu, gdzie ma być div: <script>addBaner(98);</script> <div id="box_98"></div> //możesz kilka razy: <script>addBaner(99);</script> <div id="box_99"></div> <script>addBaner(100);</script> <div id="box_100"></div> <script>addBaner(101);</script> <div id="box_101"></div> I co nie jest user friendly? Takie coś jak zrobiło Google nie jest takie proste... I szczerze mówiąc na razie nie mam pomysłu jak to zrobili(a na analizowanie ich kodu nie mam czasu, niestety)... Ten post edytował kamil4u 4.01.2011, 16:27:28 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 1 Dołączył: 5.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
No nic będę musiał to tak zrobić póki nie wymyślę innego sposobu. Dzięki za poświęcony czas
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 10:16 |