Autor Zpráva
kvoky
Profil
Zdravím,
jak by se dalo v JavaScriptu načíst zdrojový kód celého dokumentu do nějaké proměnné? Snažím se o jeden script do greasemonkey.

Díky
kvoky
Profil
Už jsem našel:

Napadlo mě googlit ekvivalent file_get_contents pro JS:

function file_get_contents( url ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Legaev Andrey
    // %        note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain.
    // %        note 1: Mainly here for study purposes. 
    // %        note 1: To avoid browser blocking issues's concider using jQuery's: $('#divId').load('http://url') instead.
    // *     example 1: file_get_contents('http://kevin.vanzonneveld.net/pj_test_supportfile_1 .htm');
    // *     returns 1: '123'
 
    var req = null;
    try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
        try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
            try { req = new XMLHttpRequest(); } catch(e) {}
        }
    }
    if (req == null) throw new Error('XMLHttpRequest not supported');
    
    req.open("GET", url, false);
    req.send(null);
    
    return req.responseText;
}
Joker
Profil
kvoky
Jako zdrojový kód aktuálního dokumentu?
Možná by šlo vzít vlastnost innerHTML prvku <html>?
Chamurappi
Profil
Reaguji na kvokyho:
googlit ekvivalent file_get_contents pro JS
Vhodnější klíčová slova by byla XMLHttpRequest či AJAX.

req.open("GET", url, false);
Třetí parametr určuje, jestli má být požadavek asynchronní. Obvykle se dává true, protože synchronní požadavky do okamžitě obdržení odpovědi zcela zablokují prohlížeč (nebo alespoň tab). Asynchronní mají zase drobnou nevýhodu, že s odpovědí nemůžeš pracovat hned po zavolání metody send, ale musíš si ji odchytit v události onreadystatechange.
kvoky
Profil
Díky všem za rady

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0