![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 24.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
staram sie zliczac klikniecia na swoich stronach osadzajac sam skrypt js. Niestety mam problem z XMLHttpRequest.open, ktory mialby otwierac plik z innego serwera. Kiedy wszystkie pliki sa pod ta sama domena, wszystko dziala. Problem pojawia sie miedzy domenami. Jak go rozwiazac, zeby dzialalo jak google analytics? Czy w ogole sie da? Jak na razie udaje mi sie wywolac zdalna domene przy uzyciu curl w php, ale wtedy plik php musi sie i tak znajdowac pod ta sama domena co skrypt js, wiec to nie ma sensu. Z gory dziekuje za pomysly |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
jest takie male ograniczenie JS - nazywane "zasada identycznej domeny" - czy jakos tak. ogolnie przez js nie polaczysz sie z plikiem na innej domenie - wzgledy bezpieczenstwa.
Jak to robi google? dodaje na strone maly obrazek (1x1px) ktory pobierany jest z ich serwera. Do adresu obrazka doklejonych jest sporo danych - potem analizuja logi (dlatego min ich statystyki nie sa na biezaco) -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 9 Dołączył: 22.03.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Hej,
Można przez JS połączyć się z innym plikiem stosując pewien trik, opisywany np. w książce Kuloodporny Ajax pana Jeremy Keith. Znacznik <script> pozwala na ściągnięcie pliczku tutaj już cytuję ww. pana: Kod <script type="text/javascript" src="http://www.google-analytics.com/urchin.js"></script> Cytat @Jeremy Keith: Funkcja jako argument przyjmuje adres URL. Tworzy nowy element script z podanym adresem URL jako atrybut src i dodaje go do elementu head dokumentu: Kod function getScript(url){ var scripttag=document.createElement("script"); scripttag.setAttribute("type", "text/javascript"); scripttag.setAttribute("src", url); document.getElementsByTagName("head")[0].appendChild(scripttag); } Może Ci się to przyda, pozdrawiam ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 24.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
nie bardzo rozumiem - czy poprzez wywolanie javascriptu w head'zie zyskuje sie mozliwosc laczenia XmlHttpRequest z inna domena?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 9 Dołączył: 22.03.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
XMLHttpRequest nie może łączyć się z inną domeną. To jest pewne. Znacznik script nie ma tych ograniczeń. Za pomocą DOM możesz`pobrać` plik bez przeładowania strony z innej domeny. Jednak musi być to plik JS- np. JSON. Można wygenerować taki plik za pomocą np. PHP. Jeśli nie jest to plik JS, pozostają chyba logi jak pisze kolega wyżej, ale nie bierz tego za pewnik. Niech wypowiedzą się inni:D
pozdrawiam ![]() Ten post edytował AjaxSrajax 28.07.2008, 00:17:25 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 24.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki za podpowiedzi, probuje rozwiazania z obrazkiem.
W pliku html, tuz przed body umieszczam odwolanie do skryptu js. w js pobieram potrzebne mi informacje i po kliknieciu wywoluje obrazek:
Teraz po kliknieciu, wartosci parametrow zapisuja mi sie do bazy, niestety strona zaczyna sie przeladowywac, wyswietla sie pusta, biala strona ... i laduje sie w nieskonczonosc - gdzie popelniam blad?
Jak napisalem wartosci parametrow zapisuja mi sie do bazy poprawnie, wiec problem pojawia sie pewnie dlatego, ze mi czegos brakuje w pliku php, po zapisaniu do bazy. Chcialbym, zeby parametry zapisywaly sie do bazy, ale zeby plik html sie nie przeladowywal - jak to zrobic? Z gory dziekuje za uwagi i pozdrawiam. Ten post edytował cioop 28.07.2008, 19:11:06 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
przeladowuje sie dlatego
tylko to nie tlumaczy dlaczego strona jest pusta ;( swoja droga w ciekawy sposob rozwiazania tego problemu ![]() -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 24.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
bez headera tez sie przeladowuje i wyswietla pusta strone
sposob ciekawy czy nie, wazne zeby byl skuteczny - probowalem tez dynamicznie tworzyc i wysylac formularz, a takze wywolywac iframe, ale skoro google uzywa obrazka, to moze taki sposob jest najlepszy!? Ten post edytował cioop 28.07.2008, 20:58:44 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
faktycznie poprzednie odpowiedz jest trochę mało przemyślana
![]() sprobuj zrobić coś takiego, że na stronce wstawiasz sobie a zamiast
uzyj
standardowy text Cytat u mnie działa
![]() -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 24.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
dzieki, dziala! opakowalem skrypt divem z id i pozniej w skrypcie wstawiam do tego diva obrazek poprzez innerHtml.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 16.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Pisze strone, ktora sciaga wskazany plik xml i parsuje go do htmla. Idealnie nadaje sie do tego AJAX. Jednak mam ten sam problem, bo sciagane pliki sa z innych serwerow ;] Moze jest mozliwe skonfigurowanie serwera zeby to on sciagal zewnetrzne pliki i odsylal je jako wlasne??
W php jest funkcja file_get_contents(), ktora laduje podany plik do zmiennej i moze ona wczytywac zewnetrzny plik JESLI w php.ini jest ustawiona linia allow_url_fopen On. Wolalbym jednak trzymac sie AJAXa, poniewaz parsowanie xmla jest w nim wbudowane. Prosze o pomoc, pozdrawiam. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie da się. Było w FF3 przez jakiś czas (podczas bety (alfy?) ) ale wyłączyli.
Może wróci przy FF3.1 Nie wiem jak reszta przeglądarek - zdaje się, że IE8 ma/będzie_miało coś takiego, ale wg ich własnego projektu (jak zwykle). ALE! Specyfikacja (jeśli tak to można nazwać) od W3C mówi, że aby pobrać dane z obcej domeny za pomocą AJAXa, ta domena (serwer w sumie) musi zezwolić na taką akcję. W tej chwili podobnie jest np. przy flashu. Także, jeśli nie kontrolujesz tych serwerów, a właściciel nie udostępni ich zawartości dla AJAXa z obcych domen, to zapomnij w ogóle o AJAXie i rób to po stronie serwera. Możesz to zrobić przy pomocy Flasha lub JSON'a - jeśli upierasz się aby było po stronie klienta... tyle, że JSON wymaga aby dane były w innym formacie, niż XML, a Flash wymaga 'pozwolenia' od serwera, aby pobrać dane. PHP ma wbudowane parsowanie XMLa (klasa DOM oraz kilka innych), a allow_url_fopen możesz obejść za pomocą curl'a. Do tego nic go nie obchodzą jakieś pozwolenia, formaty itp. Google! ![]() |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 16.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam przebiegly plan ;] Mozna wyslac zapytanie httpRequest o strone posrednik.php?link=link_do_strony_xml. Posrednik.php wyglada tak
Posrednik.php znajduje sie w tej samej domenie wiec httpRequest z ajaxa bedzie dzialac. Jednak dalej na serwerze musi byc allow_url_fopen On. Jak mozna to obejsc za pomoca curla? W php jestem zupelnie zielony. Ten post edytował wujek.staszek 17.08.2008, 17:06:55 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
To powinno zadziałać |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 09:40 |