Суть проблемы в том как получить данных из iframe, iframe грузиться с другого подомена, уже все излазил, везде написано что не возможно, но нет таких вещей которые не льзя сделать...
Правильно говорят. Это сделанно из соображения безопасности. Точно также, как и нельзя Value у <input type="File"> поменять и засабмитить его
На серваке отключены сокеты, мне нужно взять с друго сайта страницу и сохранить ее у себя, точнее просто прочитать данные с того сайта, и обработать их...
например необходимо во фрейм загрузить данные с яндекс погоды, потом при помощи явы считать его как текст, а потом уже распоряжаться им на мое усмотрение
Приведи конкретный пример, а то я в яве не силен *** да, все делается в браузере, но прокси не получается использовать, т.к. отрублены сокеты - safe mode мать его
Code: <html> <head> </head> <body> <script> function GetXmlHttpObject() { var objXMLHttp=null; if (window.XMLHttpRequest) { objXMLHttp=new XMLHttpRequest(); } else if (window.ActiveXObject) { objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP"); } return objXMLHttp; } function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { alert(xmlHttp.responseText); } } xmlHttp=GetXmlHttpObject(); var url="http://ya.ru"; xmlHttp.onreadystatechange = stateChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); </script> </body> </html> Получаем исходник ya.ru... В ИЕ работает в Опере нет.
И так полная инфа... У меня загружается определеный адрес в ифрайм, мне нужно при помощи явы, считать полностью весь текс который загрузился в ифрайм со сторонего сайта, и передать содержимое скрипту для обработки полученых данных с ифрайма. Можно было бы проще открыть адрес через сокеты и считать страницу, только сервак работает в SAFE_MODE и сокеты отрублены. P.S. Блин получается как масло масленое...)))
Когда скипт загружает ya.ru, вызывается alert(xmlHttp.responseText). Но это, честно говоря, извращение...
PHP: <?php $i=0; $f=file("URI"); while($f[$i]){ echo($f[$i]); ++$i; } ?> работает в safe_mode а если с фреймами хочешь то window.frames[0].body.innerHTML
Напиши скрипт, который будет делать что надо и выводить ответ в виде js, попроси кого-нибудь с хостингом, который держит сокеты повесить у себя и инклудь его...
У AJAX'sa тоже так же как и у iframe такое же ограничение, и по этому тоже не катит. Буду еще думать еще может быть что нибудь придумаю...
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Untitled Page</title> <script> function swapIFrame() { // ... document.getElementById("elmentIFrame").src = "http://yandex.ru/"; // ... } function parseHTML() { // ... var parseString = document.frames("elmentIFrame").document.body.document.activeElement.innerHTML; // ... } </script> </head> <body> <!- ... --> <iframe id="elmentIFrame" onload="parseHTML()" /> <!- ... --> </body> </html> ... После этого следует обыкновенное парсирование HTML кода
-=Ru=-, так не получится, потому что нельзя так просто читать данные с других доменов, иначе всё бы уже похекали. Code: ...document.body.document.activeElement... Загадочные круги по DOM'у...
Побробуйте .hta У меня работает. в .htm можно получить "Access is denied". Запустите следующий код с помощью .hta файла: <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Untitled Page</title> <script> function swapIFrame() { // ... document.getElementById("elmentIFrame").src = "http://www.google.ru/"; // ... } function parseHTML() { // ... var parseString = document.frames("elmentIFrame").document.body.document.activeElement.outerHTML; alert(parseString); //debugger; // ... } </script> </head> <body onload="swapIFrame()"> <!- ... --> <iframe id="elmentIFrame" onload="parseHTML()" /> <!- ... --> </body> </html>