Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: getElementBy ? alternatywa
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
flashdev
Jak z poziomu js dobrć sie do kodu źródłowego?
Kod
document.getElementByTagName("html")[0].innerHTML

Powyższe rozwiazanie niestety nie zawsze się sprawdza. Czasami dokument nie jest prawidłowo zbudowany.

Jeśli to mozliwe to proszę o szybkoą odpowiedź lub lepsze propozycje.

Dzięki
kilas88
Możesz przez AJAX'a wywołać funkcje typu:
Kod
<?php
header("Content-type: text/plain");
echo file_get_contents("adres pliku");
?>

Zawsze pewne, działające pod każdą przeglądarką smile.gif
flashdev
Tylko to nie zawsze sie sprawdzi bo przeglądarka wysyła w zapytaniu jeszcze cookies i pare innych rzeczy.

Narazie sobie radze z document.body.innerHTML.
A na początku mi nie pobierało tego prawidłowo ponieważ zrobiłem błąd - nie czekałem aż strona załaduje się do końca.
skowron-line
Myślę że to http://phpjs.org/functions/file_get_conten...17-2d6486a786ee może tobię pomóc no i jest to bardzo fajny projekt.
pzdr.
kilas88
Najpierw wczytaj całość strony - cały model DOM, następnie w tle załaduj oskryptowanie.
flashdev
Cytat(kilas88 @ 2.02.2009, 23:52:24 ) *
Najpierw wczytaj całość strony - cały model DOM, następnie w tle załaduj oskryptowanie.


Tak właśnie robie

Kod
document.onload=function(){
alert(document.body.innerHTML)
}


Chodzi mi raczej o to czy można pobrać dokładnie aktualny kod strony w niezmienionej postaci. Ponieważ strona nie zawsze jest poprawnie walidowana, a zauważyłem, że jak pobieram zawartość tagów przy pomocy innerHTML to też nie zawsze zgadza sie to ze źródłem (np. rozmiar tekstu w nazwach tagów)
revyag
Przy użyciu tylko javascript nie da się. Poza tym document.body.innerHTML nie pobiera dokładnego źródła strony, tylko to co wypluwa przeglądarka, a więc jej interpretację źródła, stąd różnice o których mówisz.

Rozwiązaniem jest obiekt xmlHTTPRequest.
flashdev
Ok, tak też się spodziewałem. Domyślam się, że skoro dane z innerHTML się różnią to muszą być wcześniej interpretowane przez przeglądarkę.
Dzieki za konkretną odpowiedź.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.