Tein youtube-videon lataus sivua, mutta huomasin, että sivu tarvitsee hakea lataajan ip:llä toimiakseen.
Kokeilin aluksi XMLHttpRequestia, mutta se on näköjään blokittu ulkoisilta sivuilta. Tämän jälkeen olen kokeillut tehdä tälläistä iframe viritystä, mutta en tajua miten haen framen lähdekoodin :(
http://laasonen.net/youtube/lataa_sivu.php
<script language="javascript" type="text/javascript"> <!-- var osoite = ""; var sorsa = ""; function laheta(){ osoite = document.getElementById('osoite').value; document.getElementById('nayta').src = osoite; setTimeout("anna_sorsa();", 3000); } function anna_sorsa(){ document.getElementById('sorsa').innerHTML = document.getElementById('nayta').value; } --> </script>
Pitäis varmaan olla
function anna_sorsa(){ document.getElementById('sorsa').innerHTML = document.getElementById('nayta').contentDocument.documentElement.innerHTML; }
Grez kirjoitti:
Pitäis varmaan olla
function anna_sorsa(){ document.getElementById('sorsa').innerHTML = document.getElementById('nayta').contentDocument.documentElement.innerHTML; }
Kokeiltu ja ei toimi.
EDIT: ei mitään sittenkään
No sinänsähän toi on ihan järkevä cross-site scripting suojaus. Muutenhan voisit helposti kalastella käyttäjän yksityisiä tietoja jos ne eksyisivät sivuillesi.
Oma firefox sanoo "Permission denied to get property HTMLDocument.documentElement"
Periatteessa tuo toimisi, jos saisit kytkettyä selaimestasi suojaukset pois.
Eli tämä on mahdoton homma?
Yksi vaihtoehtohan on tehdä php-skripti joka hakee nykyisen sivun lähdekoodin file_get_contents
funktiota käyttämällä. Javascriptissä sitten kutsut tuota php-skriptiä AJAX:in kanssa ja otat tulostuksen talteen.
Tumettaja kirjoitti:
Yksi vaihtoehtohan on tehdä php-skripti joka hakee nykyisen sivun lähdekoodin
file_get_contents
funktiota käyttämällä. Javascriptissä sitten kutsut tuota php-skriptiä AJAX:in kanssa ja otat tulostuksen talteen.
"Tein youtube-videon lataus sivua, mutta huomasin, että sivu tarvitsee hakea lataajan ip:llä toimiakseen."
Aihe on jo aika vanha, joten et voi enää vastata siihen.