[JS/CSS] Odczytanie zawartości nowego okna

0

Cześć Wam
Próbuję zrobić coś takiego:

  1. utworzyc nowe okienko i zaladowac do niego strone z Allegro (docelowo bedzie to lista aukcji)
  2. nowe okno schowac pod innymi żeby nie wkurzało
  3. odczytać treść powyższej strony między znacznikami body i przypisać ją do zmiennej
  4. zamknąć nowe okno
  5. jakoś obrobić otrzymany tekst

Naskrobałem coś takiego (na razie dla okna bieżącego):

function pop()
{
noweOkno = window.open('http://www.allegro.pl', 'okienko', 'menubar=no, toolbar=no, location=no, scrollbars=no, resizable=no, status=no, width=1, height=1, left=0, top=0')
noweOkno.blur()
tekst='|'+document.getElementsByTagName('body')[0].innerHTML+'|'
noweOkno.window.close()
alert(tekst.substring(0,50))
}

i działa, pokazuje mi w alercie początek dokumentu w którym jest powyższa funkcja.
Niestety jak próbuje odczytać zawartość strony z nowego okna:

function pop()
{
noweOkno = window.open('http://www.allegro.pl', 'okienko', 'menubar=no, toolbar=no, location=no, scrollbars=no, resizable=no, status=no, width=1, height=1, left=0, top=0')
noweOkno.blur()
tekst='|'+noweOkno.document.getElementsByTagName('body')[0].innerHTML+'|'
noweOkno.window.close()
alert(tekst.substring(0,50))
}

to już nie działa. FF daje alert '||', w Operze od razu sie wykrzacza i nawet nie zamyka okna.

Wiecie może jak to poprawić?

0

Wykonaj to w ajaxie. Pobierasz zrodlo do diva, następnie wyrażenia regularne:

var reg = /(?:<body.*?>)((\n|\r|.)*?)(?:<\/body>)/gi;

while(script = reg.exec(document.getElementById("ID DIVA GDZIE ZŁADOWAŁES STRONE").innerHTML)) {
		if(script[1]) alert(script[1])
	}

//nav: zapomniałem. Trochę mi się pochrzaniło z ie, 2 lata temu się dało (lub nadal sie da)

0
bordeux napisał(a)

Wykonaj to w ajaxie. Pobierasz zrodlo do diva, następnie wyrażenia regularne:

Jak niby ajaxem chcesz załadować stronę allegro? :> Zostało to zablokowane ze względów bezpieczeństwa. Zostaje proxy po stronie serwera.

0

Chyba się nie zrozumielismy.
Chodzi mi o odczytanie zrodla innego okna.
Ajax-a wolałbym uniknąć bo jakies problemy z XML-em miałem.
A jak mówi nav podobno nawet się nie da.
Chciałem wrzucic strone Allegro do ukrytej ramki ale niestey mają zabezpieczenie przed ramkowaniem i wyskakuje na wierzch, dlatego postanowiłem wczytac ją do wlasnego nowego okienka co nawet sie udaje. Tylko teraz trzeba źródło wyciągnąć. Jeśli jest inny sposób to jestem otwarty na propozycje.
Dodam jeszcze ze kombinowałęm tez w php z funkcjami filegetcontent(), file(), fopen() fsocopen() itp (nazwy moglem troche pokrecic z pamieci) niestety moj serwer (cba.pl) nie zezwale na takie opercje na plikach zdalnych, wiec przerzucilem sie na JS.

0

w js tego nie zrobisz ze względów bezpieczeństwa - tj. nie możesz się odwoływać do strony w obcej domenie
jeśli strona którą chcesz obrobić jest na tym samym serwerze to nie ma problemu i z pobraniem kodu strony w js i z pobraniem treści przez ajax - tyle że wtedy nie wiem jaki sens tego by był

jedyny sposób to właśnie z tym fopen / fsockopen / file_get_contents / curl - czyli jakby nie było - wspomniane przez nava proxy po stronie serwera - jeżeli to wszystko masz poblokowane to polecam zmianę serwera, a jeżeli serwer jest opłacony to wykłócenie się o nie

0

Chyba wciąż sie nie rozumiemy :/

aaaaten wyższy napisał(a)

w js tego nie zrobisz ze względów bezpieczeństwa - tj. nie możesz się odwoływać do strony w obcej domenie

Ja nie chce wczytywac/pobierac strony JS-em/AJAX-em bo strone z powodzeniem wczytuje do nowego okna, ja chcę sie dostać do obiektu document tego okna i odczytac jego tresc. Co za różnica co w nim jest skoro dla przegladarki to tylko jakis obiekt? Czy nie mam racji?

0

nie!
nie masz dostępu do niczego, a zwłaszcza do elementu document strony z innej domeny
to jest ze względów bezpieczeństwa użytkownika
jeżeli nadal tego nie rozumiesz to pomyśl co by było gdyby to było możliwe, np:
na każdej stronie mógłaby znaleźć się niewidoczna ramka ze stroną gmaila, jeżeli byłbyś w tej chwili zalogowany albo miał włączone autologowanie, to właściciel strony miałby dostęp do każdego twojego maila
na każdej stronie mogłaby znaleźć się taka sama ramka ze stroną bankową, zakładając że byłbyś w tym momencie zalogowany w serwisie, właściciel strony atakującej mógłby uzyskać bezproblemowy dostęp do twojego wyciągu bankowego

tak samo z każdą stroną, możnaby pozyskać prywatne dane ze wszystkich serwisów do których jesteś w tym momencie zalogowany

rozumiesz teraz czy zaczniemy od czegoś łatwiejszego?

0

a przykład z allegro też dobry - mógłbyś odczytać dane osobowe, login i wszystko inne...
zaczynam myśleć że próbujesz bawić się w "haxiora"

0

No dobra. Sprawdziłem, macie racje, zwracam honor, szkoda.
W hakiera sie nie bawię, po prostu chcę zrobić na mojej stronie w menu automatyczną liste moich aukcji z Allegro.
Czyli że niby nie da sie tego w ogóle zrobić?

0

czyli że niby nie da się tego zrobić na cba.pl z tego co piszesz

0

A co Allegro musialo by zrobic abym mial taką możliwość?
Jakieś API czy coś? Może RSS?
Interesuje mnie tylko lista aukcji (przedmiotów) wraz z cenami, ofertami i datami.
Żadne loginy, hasla itp

0

Na CBA.PL tego nie zrobisz. Jestem tam pod rangą Przyjaciel Hostingu i wiem że mają zablokowane zejścia do innych stron i hostów przez file_get_contents czy fopen, tak jak każdy darmowy hosting który chce pozbyć się spambotów (a jest ich wiele).

Musisz po prostu znaleźć se coś za 100 PLN/rok ( O12.PL ) i tam pobawić się w PHP cURL ( wpisz tą przemiłą frazę w Google ). Wtedy będziesz w stanie osiągnąć takie efekty że... No generalnie będziesz mógł przeformatować sobie listę i aktualizować swoją stronę w czasie rzeczywistym razem z Allegro. Ogólnie będziesz mógł zrobić 99999 innych rzeczy po swojemu.

Ja bym Ci taki skrypcik wraz z jakimiś jeszcze zabawkami zrobił za 50zł. Jednorazowa opłata, a przyda Ci się na kilka lat zapewne...

0

Hehe
Dzieki za propozycje ale skrypcik to juz sobie sam wykombinuje (chocbym mial tydzien kombinowac :) ) O curl-u czytalem ale ze na cba.pl nie trybi to sobie darowalem.
100zł/rok to nie tak wiele nawet jak na biednego studenta, pomysle.

Dzieki za wszystkie odpowiedzi, nawet te nieco niemiłe (aaaaasf), temat uważam za zakonczony, niestety.

0

Od siebie dodam, ze polskie hostingi są nakierowane na zyski (jak z resztą wszyskie, ale w polsce najbardziej)
Ja polecam np 00free.net <- curl nie jest blokowany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1