Iframe, извлечение информации из произвольной части сайта
Собсна...я нуб. Мне запретили дядьки из администрации писать в названии темы "Я нуб, нужен совет" вот...пишу тут.
Собсна. Прошу помогите. Собственно, как сделать так чтобы часть информации одного сайта появилась на другом. Я имею в виду, взять кусок информации с одного сайта и переместить его на другой, причем тот кусок информации, который мне нужен, находится не по краям страницы, и даже не совсем в центре. Прошу помогите, если непонятно, вот, накалякал быстренько: ![]() Надеюсь, моё "художество" вам поможет) На самом деле я рисую намного лучше, сам понять не могу...почему такое убожество получилось) Мне ответили: " Насчёт "места, куда должна вставляться информация с др. сайта", есть тег <IFRAME> Насчёт "места, информация из которого должна переноситься", это может быть реализовано с помощью php или javaScript-a. Т.е. страницу, на, которой находится нужный блок информации, нужно обработать, найти на ней нужный фрагмент, блок информации и затем вывести его в качестве элемента вашей страницы. " Но я же нуб) Помогите, мне, пожалуйста. Дайте код с подробным описанием...ПОЖААААЛУЙСТА.:h elp: |
на данном форуме я конечно новичок, и наверное мой пост будут критиковать, но я все же рискну.
во-первых попробуй поменьше употреблять "паразитов" (собсна, собственно) просто не приятно читать, хотя и не кретично, но встречают по одежке. во-вторых (и главное) форумы такого рода, существуют для того, что бы помогать людям, а не делать за них работу (для этого тут есть другая ветка) в-третих, ИМХО такие задачи лучше решать на стороне сервера, зачем грузить клиента, кроме того, javascript должен помогать пользователю, и при возможности страница должна работать и без него, а если ты скриптом будешь вытаскивать данные с другого сайта, то твоя страница без JS работать не будет, что есть плохо. |
Уважаемый sp00n многие из нас на разных форумах новички по разным причинам, кто то никогда на них не регистрировался, кто то и в правду новичок... Но суть не в этом, человек четко расписал с какой задачей он столкнулся, и незачем здесь расписывать во первое, во второе... и так далее если вы по существу не ответили на вопрос.
Ситуация довольно проста (как описывал коллега по задаче): Нужно считать определенную часть сайта и показать ее в определенной части другого сайта к которому мы имеем доступ и можем изменить НТМЛ (собственно код). Собственно все мы умеем использовать ифрейм но вот как заставить этот ифрейм вывести например блок информации : margin-left: 300px; - вот как сделать такой отступ !?? margint-top: 150px; width:400px; - это мы легко делаем в параметрах Ифрейма height:200px; И нефег здесь спамить не по теме и давать ссылки на глаыную ветку форума или расказывать что мол если без ДЖАВА то плохо, вы знаете на данный момент хоть один браузер что не поддерживает ДЖАВА, и какой процент посетителей вашего сайта отключает ДДЖАВУ ?:?? |
Тут есть небольшое решение:
Ну честно говоря не могу в этом розчехлится: <div id="newbox" style="width:400px; height:200px; overflow:scroll; border:1px solid red;">Переносимо сюда</div> <div id="framebox">Завантажений код</div> <script type='text/javascript'> var framebox, id="wrapper", frame, framedoc, obj, newbox, timerID=null, interval=1000, i=0, maxi=9, page="http://telepuzik.ru", h="<h3>Фрагмент элемента со страницы "+page+"</h3>"; function getIframeDocument(iframeNode) { if (iframeNode.contentDocument) return iframeNode.contentDocument if (iframeNode.contentWindow) return iframeNode.contentWindow.document return iframeNode.document } function create_frame(str) { framebox=document.getElementById("framebox"); framebox.innerHTML="<iframe name='t' id='t' src='"+str+"'></iframe>"; newbox=document.getElementById("newbox"); } function get_frame_doc() { if (obj || i>maxi){ clearInterval(timerID); get_text(); return; } frame=document.getElementById("t"); framedoc=(frame.contentWindow && frame.contentWindow.document) || frame.contentDocument || frame.document; obj=framedoc && frame.getElementsByTagName('table')[1]; i++; } function get_text() { if (obj && obj.hasChildNodes() && obj.childNodes[1] && obj.item(1)) { newbox.innerHTML = h + (obj.childNodes[1] && obj.childNodes[1].innerHTML); framebox.innerHTML="#####"; } else return alert("Не удалось получить Объект за "+(i-1)*interval+" мс!"); } create_frame(page); timerID=setInterval(get_frame_doc, interval); setTimeout(function() { var ifram_1=document.getElementById("framebox").getElementsByTagName("iframe")[0]; var q=getIframeDocument(ifram_1); alert("innerHTML kod ### ="+q.innerHTML); } , 5000); </script> Почему тут alert("innerHTML kod ### ="+q.innerHTML) - не показывает код загруженной странички в iframe? Помогите! |
А правда, что просто нету доступа... - связанно с проблемой безопасности. Можно только в пределах одного домена!?
|
да, но в интернете, на сайте Yahoo, есть такая возможность, взаимодействовать не со своими сайтами посредством API Yahoo.
Вот один из примеров взаимодействия с YQL: тырим код страницы ucoz.ru : HELLO WORLD !!!!!! ... <script> function clb(data){ document.body.innerHTML += data.results[0].replace(/\/{2}(?:\]\]>)|(?:<!\[CDATA\[)/g, ''); } </script> <script src="http://query.yahooapis.com/v1/public/yql?q=%20SELECT%20*%20FROM%20html%20WHERE%20url%3D%22http%3A%2F%2Fucoz.ru%2F%22%20%20&format=xml&callback=clb"></script> попрактикуйтесь в консоли |
:dance:
Спасибо... Интересно... Я , что такое есть, и не знал... Грузится правда долго... :yes: |
:)
Но было б лучше чтоб javascript работал... Ибо интересует больше не сам код как таковой, а код, что загрузится именно в мой скрытый iframe. там есть маленькая разница.. :agree: |
Может просто попробуйте <?php include...?> ?
|
вот интересно, а параметры вставляемого из другого сайта объекта заранее известны? ну там id Diva например...
фиг знает, но как вариант: Цитата:
инклудить соответственно в <div style='visibility:hidden'> и в нём уже искать див, который надо клонировать. либо, через невидимый iframe: var temp = top.nameFrame.document.getElementById('нужны div').innerHTML; //забираем document.getElementById('div куда вставляем').innerHTML = temp;//вставляем |
Часовой пояс GMT +3, время: 08:53. |